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)的情况下的列表。