【问题标题】:Using math.js in Postman在 Postman 中使用 math.js
【发布时间】:2020-11-02 18:44:11
【问题描述】:

我正在尝试在 Postman 中使用 math.js

已经看到Tip#5 in their website。所以,在一个请求中,我有

postman.setGlobalVariable("mathjs", () => {
  \\ The full math.js library
});

具体来说,this is the code of math.js that I copied,以防版本很重要。

然后在一个应该使用库的请求中,我评估全局变量

eval(globals.mathjs)();

我不经常使用 JavaScript,所以也许我缺少一些基本的东西。在第一个请求中定义了一个全局变量mahjs,它的值是一个调用库代码的lambda。然后,在第二个请求中,调用该 lambda 函数。如果我到目前为止的理解不正确,请纠正我。

问题:之后如何调用库定义的函数?

我试过了:math.multiply(x,y);Math.multiply(x,y);multiply(x,y);。它们都不是有效的。 函数multiplyseems to be defined by the library 用作math.multiply(array, matrix)


与我已经完成的复用比较。

在一个请求中

postman.setGlobalVariable("utils", () => {
  myfunction = function (x){
    return x+1;
  };
});

在使用它的请求中

eval(globals.utils)();
x = 1;
console.log(myfunction(x));

这行得通。

【问题讨论】:

  • 您要解决的问题是什么?
  • @DannyDainton 最后,在 Postman 的一些测试中调用 math.js 中定义的函数。
  • 我明白了那部分,但你想从 math.js 创建哪些数据点?如果您使用它的只是将数字相乘,这似乎有点过头了。您能否更新问题以扩展您将如何使用请求中的数据,您可能会在此处采取不同的路线。
  • @DannyDainton 不,我会做更复杂的线性代数。上面的代码是用尽可能简单的例子来展示我不理解的部分(以及我设法做到的部分)。如果我学会了如何调用math.js 中的函数,我应该可以自己编写其余的。
  • 这种来自邮递员首席解决方案工程师 Kevin Swiber 的方法可能是引入 CDN 模块并在您的收藏中使用它们的更好方法 - explore.postman.com/templates/7170/browserify-cdn-modules

标签: javascript postman math.js


【解决方案1】:

这解决了你的问题:

const mathjsUrl = "https://cdnjs.cloudflare.com/ajax/libs/mathjs/7.5.1/math.min.js";

pm.sendRequest(mathjsUrl, (err, response) => {
    const mathjs = response.text();

    (new Function(mathjs))();
        let result = math.multiply(4,3);;
        console.log(result);
});

【讨论】:

  • 确实如此,确实如此。好的。看起来使用库需要的是从库文本创建 Function 对象,而不是将其放入 lambda 并调用它。我会试试这个,看看我是否可以修改它以直接粘贴文本,而不是从 cloudflare 请求它。我认为就我而言,这将在未连接到 Internet 的计算机上运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多