【发布时间】:2015-09-15 18:29:17
【问题描述】:
我的意思是如果我想在浏览器中做一些事情,比如调用 eval,我可以这样做:
window['eval']();
如“用字符串调用 eval”。
但在 Node 中没有窗口。有global,但里面没有require。
node 中包含 require 的内容,以便我做:
???['require']();
我在全局范围内尝试了 this[require] 和 global['require'],还尝试使用 require.prototype 和 require.constructor 找到 require 函数父级,但没有运气。
编辑:
require 确实存在某处,因为例如只需写require('vm'),它就可以工作。
Node.js source 包含 NativeModule.require 和 nativeModule 引用,但是当我尝试使用它时,NativeModule 没有定义。
【问题讨论】:
-
我也很困惑...来自文档 (nodejs.org/api/globals.html#globals_require):
To require modules. See the Modules section. require isn't actually a global but rather local to each module. -
window['eval']是对eval函数的引用,但是因为它在窗口中,所以您可以使用eval代替。 nodejs中的require函数是注入的,所以你可以直接使用require,不需要prefix.require。为什么你会想要使用require作为动态函数?发布您想要的内容:) -
@AndreyPopov 也许我想绕过检查“require”字样代码的东西。所以对于 eval 它会像
var e = 'ev'; var a = 'al'; window[e+a](code)
标签: javascript node.js require