Sco*_*aph 3 function require node.js
我正在尝试执行一个 Function 对象,该对象与以下伪代码本质上相同:
var testF = new Function("x","y", "var http = require('http');");
testF('foo','bar');
Run Code Online (Sandbox Code Playgroud)
并得到:
ReferenceError: require is not defined
Run Code Online (Sandbox Code Playgroud)
我是否需要以某种方式添加一些东西来重新加载 require 模块,因为它不是 Node 中的全局模块?如果是这样,谷歌就不是我的朋友,所以任何关于如何做到这一点的指示都会很棒。
感谢您的想法。
由于new Function 是 eval 的一种形式,因此您可以eval:
eval("function testF(x,y){ console.log(require);}");
testF(1,2);
Run Code Online (Sandbox Code Playgroud)
如果您想遵循原始方法,您需要将这些全局变量传递到函数作用域:
var testF = new Function(
'exports',
'require',
'module',
'__filename',
'__dirname',
"return function(x,y){console.log(x+y);console.log(require);}"
)(exports,require,module,__filename,__dirname);
testF(1,2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4114 次 |
| 最近记录: |