Node.js 开发手册(一)
Node.js 开发手册(一)
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs
一、Node.js 简介 Node.js 由于其简洁性而受到广泛关注。与 PHP 或 ASP 不同,后者在 Web 服务器和代码间没有间隔,也不需要自定义大量的配置文件。使用 Node.js,我们可以创建服务器,自定义它,在代码层交付所有的内容。
二、构建路由器 为了交付 Web 内容,我们需要使 URI 有效。为了使得开发效率更高,这里我向大家推荐两款工具,它可以帮助 Node.js 程序在改动后自动部署生效,简化了开发。工具如下:
1. Hotnode Hotnode 是一个包,可以让代码在修改保存后实现自动重载。其特征有两点:
一是当文件发生改变后,自动重载 Node.js 代码。
二是会检测当前目录及其子目录。
2. Supervisor node-supervisor 也是一个包,它可以运行 Node.js 程序,观察代码的变动情况,自动重新热部署,无需担心内存泄漏以及中间模块引用的清除等。
Hotnode 和 Supervisor 两者的功能差不多,不过 Hotnode 先于 Supervisor 差不多一年发布。
两者的安装都很简单,以 supervisor 为例,安装如下:
$ sudo npm install supervisor -g
三、测试 编写一个 Node.js 程序,名为 server.js,内容如下:
// server.js
var http = require("http");
http.createServer(function(req, res){
res.writeHead(200, {"Content-Type": "text/html"});
res.end("Woohoo!");
}).listen(8080);
用 supervisor 执行此程序,命令为:
$ supervisor server.js
用浏览器访问地址:http://localhost:8080/ 会显示 Woohoo!
四、修改代码 我们可以使用 path 模块提取路径的基本名字,用 decodeURI 在客户端解码任何URI 编码。内容如下:
// server.js
var http = require("http");
var path = require("path");
var pages = [
{route: "", output:"Woohoo!"},
{route: "about", output:"A simple routing with Node example"},
{route: "another page", output: function(){return "Here\"s " + this.route;}},
];
http.createServer(function(req, res){
var lookup = path.basename(decodeURI(req.url));
pages.forEach(function(page){
if(page.route===lookup){
res.writeHead(200, {"Content-Type": "text/html"});
res.end(typeof page.output === "function" ? page.output() : page.output);
}
});
if(!res.finished){
res.writeHead(404);
res.end("Page Not Found!");
}
}).listen(8080);
在终端上可以看到,代码是实时被 supervisor 热部署了的。
在浏览器访问 http://localhost:8080/aboutasd
会提示:Page Not Found!
在浏览器访问 http://localhost:8080/about 会提示:A simple routing with Node example