Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎。目的是为了提供撰写可扩充网络程序,如Web服务。第一个版本由Ryan Dahl于2009年发布,后来,Joyent雇用了Dahl,并协助发展Node.js。
其他编程语言的类似开发环境,包含Twisted于Python,Perl Object Environment于Perl,libevent于C,和EventMachine于Ruby。与一般JavaScript不同的地方,Node.js并不是在Web浏览器上运行,而是一种在服务器上运行的Javascript服务端JavaScript。Node.js实现了部分CommonJS规格(Spec)。Node.js包含了一个交互测试REPL环境。
用Node.js撰写的HTTP Server版hello world示例:
var http = require('http'); http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8000); console.log('Server running at http://127.0.0.1:8000/');
另一个简单的TCP服务器示例,监听(Listening)端口7000并输出 (echo)之前输入的消息:
var net = require('net'); net.createServer(function (stream) {
stream.write('hello\r\n'); stream.on('end', function () {
stream.end('goodbye\r\n');
}); stream.pipe(stream);
}).listen(7000);
一个十分活跃的Node.js社区集中在nodejs和nodejs-dev这两个邮件列表上。
Node.js的IRC频道#node.js在freenode上。
NodeConf是一个开发者们集中讨论Node.js的社区年度聚会。[5]
Node.js中文社区是由中国开发者发起的社区。