本章内容包括:
使用 Node.js ,可以同时处理多达几万个用户的客户端连接。当需要使 web 应用程序能够支持大量用户的并发连接的时候,我们应该考虑使用 Node.js。
严格地说,Node.js 是一个用于开发各种 Web 服务器的开发工具。在 Node.js 服务器中,运行的是高性能 V8JavaScript 脚本语言。
为了实现高性能,Node.js 中采用了以下两种机制:
在 Node.js 中,在一个时刻只能执行一个事件回调函数,但是在执行一个事件回调函数中途可以转而执行其他事件(包括触发新的事件、声明该事件的回调函数等),然后返回继续执行原事件回调函数,这种机制称为事件环机制。
当应用程序需要处理大量并发的输入 / 输出,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,我们应该考虑使用 Node.js 来进行该应用程序的开发。例如,我们可以开发如下应用程序:
在 Node.js 中是通过以模块为单位来划分所有功能的。每一个模块为一个 JS 文件。每一个模块中定义的全局变量或函数的作用范围也被限定在这个模块之内,只有使用 exports 对象才能将其传递到外部。代码如下所示:
- exports.printFoo = function() {
- return "foo";
- }
将上面这个具有 printFoo 函数的模块文件保存为 foo.js 文件。
在引用模块时,我们需要使用 require 函数。例如,可以通过 以下代码来访问模块中的 printFoo 函数:
- var foo = require('./foo.js');
- console.log(foo.printFoo());
Node.js 中的核心模块:
在 Node.js 中,可以直接使用 require 函数并将模块名设置为 require 函数的参数值的方法来引用核心模块。例如,可以使用如下代码来引用 http 模块:
- var http = require('http');
Node.js 中追加的类、函数与对象:
- var http = require('http'); //引用http模块
- http.createServer(function(req, res) {
- res.writeHead(200, {
- 'Content-Type': 'text/html'
- });
- res.write('<head><meta charset="utf-8"/></head>');
- res.end('你好\n');
- }).listen(1337, "127.0.0.1");
- console.log('Server running at http://127.0.0.1:1337/');
来源: