Node.js自动需要哪些模块?
快速的问题,但我惊讶地找不到一些谷歌search的答案…当我使用node
交互式解释器,我可以input基本上所有核心模块的名称,并看到他们作为对象输出到控制台…但是,据我所知,在运行.js文件时,核心模块并不都是默认包含的。
任何人都可以为我清除这个? 所有帮助赞赏。
从Node 0.8开始, repl.js
定义了一个内置库的列表,当你在REPL上键入它们的名字时,这些内置库将被自动需要 :
exports._builtinLibs = ['assert', 'buffer', 'child_process', 'cluster', 'crypto', 'dgram', 'dns', 'events', 'fs', 'http', 'https', 'net', 'os', 'path', 'punycode', 'querystring', 'readline', 'repl', 'string_decoder', 'tls', 'tty', 'url', 'util', 'vm', 'zlib']; ... if (exports._builtinLibs.indexOf(cmd) !== -1) { var lib = require(cmd); if (cmd in self.context && lib !== self.context[cmd]) { self.outputStream.write('A different "' + cmd + '" already exists globally\n'); } else { self.context._ = self.context[cmd] = lib; self.outputStream.write(self.writer(lib) + '\n'); } self.displayPrompt(); return; }
这是repl.js
一个特殊function,在编写自己的Node.js程序时完全不起作用; 在那里,你必须特别require
任何你想使用的。
您需要在节点中要求使用所有模块。 Node.js中没有包含javascript规范(ECMA规范)中包含的函数。
要访问核心库,你需要它们。 例如,如果您需要访问创build服务器function,则需要执行以下操作:
var http = require('http'); http.createServer(function(req, res) { console.log(req); }).listen(3000);
您也可以在交互式控制台中执行此操作。 即将模块分配给一个variables,然后开始使用它。
目前有一个npm包裹在repl.js文件周围,并以更友好的方式给你列表。
内置模块
我想这可能是有趣的,快速得到不同的节点版本(nvm),这些版本不同版本的核心模块(实际上发生在不同版本的AngularJS)的情况下的列表。