Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 外部JS文件中的Postman调用函数-';x未定义';_Javascript_Postman_Postman Pre Request Script_Minifiedjs - Fatal编程技术网

Javascript 外部JS文件中的Postman调用函数-';x未定义';

Javascript 外部JS文件中的Postman调用函数-';x未定义';,javascript,postman,postman-pre-request-script,minifiedjs,Javascript,Postman,Postman Pre Request Script,Minifiedjs,其他帖子也讨论过这个问题,但我自己仍然无法应用 我有一个邮递员预脚本测试 我正在尝试调用中定义的加密函数 代码调用代码的方式如下: let pubKey = forge.pki.publicKeyFromPem(atob(publicKey)); ... let .... = forge.util.encodeUtf8(data)); let ... = forge.util.encode64(text); ... 我尝试了eval技巧,将整个代码放入一个变量中 var code = pm.

其他帖子也讨论过这个问题,但我自己仍然无法应用

我有一个邮递员预脚本测试

我正在尝试调用中定义的加密函数

代码调用代码的方式如下:

let pubKey = forge.pki.publicKeyFromPem(atob(publicKey));
...
let .... = forge.util.encodeUtf8(data));
let ... = forge.util.encode64(text);
...
我尝试了
eval
技巧,将整个代码放入一个变量中

var code = pm.collectionVariables.get('forge.min.js');
eval(code);
由此产生的错误是:

ReferenceError:未定义forge


代码变量包含整个缩小的Javascript块。

您可以执行以下操作,而不是使用
eval

(new Function(code))();

console.log(forge);
邮递员控制台中的输出(您可以在右下角打开它):

解释:我不知道为什么,但我就是无法让
eval
工作。我怀疑这与VM Postman使用的全局范围有关(浏览器中没有
window
like,Node.js中没有
global
like,而是一个
pm
全局对象)

函数构造函数的作用类似于
eval
函数,但将其封装在自己的内部作用域中,因此无法访问外部变量。你可以读更多


语法有点混乱,但换言之,它创建了一个新函数,然后调用它。
新函数(…)
周围必须有一对额外的括号,因为“函数调用”操作符(末尾的
()
绑定比“新”操作符更强。

如何检索文件
forge.min.js
?可能它在开头或结尾包含了一些不应该出现的字符,因此无效。我会试试这个。顺便说一句,关于
window
,我试着写了一个技巧
window={},但这也没有帮助。
{
  aes:{...}
  asn1:{...}
  cipher:{...}
  ...
}