标签: node.js object module global require
我注意到从repl运行时,存在GLOBAL节点对象的模块和 require 属性(console.log(GLOBAL)) 但是当我从内部应用程序(再次使用console.log)检查GLOBAL对象时,没有模块和需要GLOBAL对象的属性。我认为该节点实际上会在应用程序存在时创建这些属性(例如HTTP服务器),因为这是我们需要外部模块时的情况?有人可以解释一下吗? 谢谢
答案 0 :(得分:1)
每个源文件都由node.js模块助手包装到一个函数中:请参阅node.js中的NativeModule.wrapper,NativeModule.wrap。在源文件exports中,require,module,__filename,__dirname是该函数的参数。
NativeModule.wrapper
NativeModule.wrap
exports
require
module
__filename
__dirname
运行repl时,require和其他人会从repl上下文中引用 - 请参阅repl.js中的REPLServer.prototype.createContext
REPLServer.prototype.createContext