首先我们需要建一个Node服务器,而这相当简单,先创建文件夹保存项目,我比较喜欢《魔法禁书目录》里面的一方通行,那么我们的新文件夹名称就叫Accelerator好了。啊哈,好像有点长。

接着我们新建一个js文件,取名test.js,代码来自《深入浅出NodeJs》,里面内容为:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

然后我们通过终端,使用命令行工具进入Accelerator,然后输入node test.js,终端窗口返回:Server running at http://127.0.0.1:1337/

我们打开浏览器,输入这个地址,那么,一个经典到不能再经典的Hello World就出现在页面上,一个Web服务器就建立。是不是超简单呢?

那么这些是怎么实现的呢?我们来逐行分析。

var http = require('http');
首先我们看到require,相信有PHP基础的同学一定不会陌生:从一个文件中引入内容。那么这段代码的内容即为:声明一个变量,它的名字叫http,他是一个引入的模块,模块名称也叫http
模块的概念复杂而又庞大,在《深入浅出NodeJs》一书中的介绍内容长达35页,而我目前也是一知半解,所以有兴趣的同学请前往阅读。
一句话来说:Node.js 提供了 http 模块,http 模块主要用于搭建 HTTP 服务端和客户端,使用 HTTP 服务器或客户端功能必须调用 http 模块。(出自《菜鸟教程》)

http.createServer(function (req, res) {
我们刚刚创建的变量,他有一个方法,名字叫“创建服务”createServer,在他里面有一个回调的匿名函数,这个匿名函数有两个值reqres,这两个分别表示“请求对象”和“响应对象”。
req也就是“我们”浏览器发送给服务器的内容,这个内容可以获取浏览器相关的信息,包括cookie,浏览器版本和访问方式等,但是这些消息我们已经知道或者不需要用到,所以后面再也没出现过...
res则是服务器发送给我们的内容,这个内容包括服务器的状态,使用的语言格式以及在发生错误情况下的错误代码等等。

res.writeHead(200, {'Content-Type': 'text/plain'});
在刚刚取得的匿名函数中,我们取得了响应对象。在这里我们给它的头部writeHead制定规范。这个规范有两个值,第一个是http状态值,200为正常,404为找不到等等,这些想必大家都已经知道了。第二个是内容的类型:text/plain为纯文本,text/html为html形式(如果内容包含html代码,请选择这种。有兴趣可以修改对应的代码查看效果),作用类似于PHP中的表头:header("Content-Type: text/html");

res.end('Hello World\n');
这里仅作为一个输出语句。在响应对象的最后,我们给他一个文字提示Hello World,如果你先增加其他文字内容,可以使用res.write('此处输入内容'),但是一定要放在end之前。
如果你采用的表头规范是text/html那么这部分内容将解析为html。

}).listen(1337, '127.0.0.1');
listen也就是听,这段话内容相当好理解,监听127.0.0.1段的1337端口,如果访问了就输出Hello World。

console.log('Server running at http://127.0.0.1:1337/');
这个是JavaScript中的控制台输出语句,在node中,这里输出的内容只会在终端窗口出现,不会在页面和浏览器的控制台显示,如果你能看到终端出现这句话,代表之前的代码已经全部通过,可以正常访问了。

那么,Node服务器启动后怎么退出呢? 使用键盘Ctrl+C即可,非常简单。