现在,你已准备好编写有点有趣的东西了,就比如我们要写一个小的web server。幸运的是,Node 让这样的任务变得很简单。把下面的代码保存到一个叫 web.js 的文件中:
var http = require("http");
function process_request(req, res) {
var body = 'Thanks for calling!\n';
var content_length = body.length;
res.writeHead(200, {
'Content-Length': content_length,
'Content-Type': 'text/plain'
});
res.end(body);
}
var s = http.createServer(process_request);
s.listen(8080);
要运行该代码,只需输入 node web.js
现在,你的计算机上就有了一个 web server 运行在 8080 端口上。要测试它,你可以使用命令行程序 curl,大多数 Mac 以及 Linux 机器上已经装了。当然也可以在 浏览器 中输入 http://localhost:8080 来检验。
curl -i http://localhost:8080
你可以看到类似于下面的输出:
HTTP/1.1 200 OK
Content-Length: 20
Content-Type: text/plain
Date: Tue, 15 Feb 2013 03:05:08 GMT
Connection: keep-alive
Thanks for calling!
【Downloading from the Web on Windows】
=============================================================================
默认,Windows 没有带任何可以得到一个 URL 的内容的命令行工具。这工具实在不错,我建议你为Windows 下载 cURL 或 wget。
【Curl】:到http://curl.haxx.se/download.html 去下载 Windows binaries for curl,在页面中找到 Win32-Generic 部分。最好下载带 SSL和SSH的。解压后,把 curl.exe 的路径放到 PATH 环境变量中。
C:\Users\Mark\curl --help
【Wget】:它工作起来基本和 crul 一样,但它带了一些稍微不同的命令行参数。看它的帮助能学到更多:
C:\Users\Mark\wget --help
=============================================================================
前面代码中的 require 函数的作用是把一个模块包含进来。createServer 函数带一个参数,该参数是一个函数,每当一个人连接到你的服务器,该函数就会被调用。
-i 开关是告诉 curl 打印 headers 和 response。Node.js,默认到它的服务器的 HTTP 连接是 keep-alive,这样就允许在同一个网络连接上可以有多个请求。
要停止该服务器,按下 Ctrl+C 就行了。它会很聪明地清掉所有东西并正确关闭。