我想从需要另一个模块的字符串创建一个函数(不要问)。
当我尝试在节点交互式外壳中执行此操作时,一切都很好而且花花公子:
> f = new Function("return require('crypto')");
[Function]
> f.call()
{ Credentials: [Function: Credentials],
(...)
prng: [Function] }
但是,当我将完全相同的代码放入文件时,我被告知 require 函数不可用:
israfel:apiary almad$ node test.coffee
undefined:2
return require('crypto')
^
ReferenceError: require is not defined
at eval at <anonymous> (/tmp/test.coffee:1:67)
at Object.<anonymous> (/tmp/test.coffee:2:3)
at Module._compile (module.js:446:26)
at Object..js (module.js:464:10)
at Module.load (module.js:353:31)
at Function._load (module.js:311:12)
at Array.0 (module.js:484:10)
at EventEmitter._tickCallback (node.js:190:38)
如何解决?
此外,它告诉我我对 node.js 上下文/范围一无所知。那是什么?