Node.js – Simple Http Server

一. 安装和部署Node.js开发环境

1. 安装node.js,请访问http://nodejs.org/

2. IDE开发环境

开发方法有多种:notepad, eclipse, google chrome, WebMatrix, ...,各有各的优缺点,个人比较喜欢eclipse方式。

eclipse配置步骤可以参考如下网址:

http://download.eclipse.org/eclipse/downloads/

https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger

http://www.nodeclipse.org/

二. 创建一个基本的Http Server

1. 首先新建一个index.js文件,输入如下代码:

var http = require("http");

http.createServer(function(request, response) {
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write("Welcome to Node.js!");
        response.end();
}).listen(6600);

2. 命令行进入index.js目录,输入如下代码来启动:

node index.js

3. 打开浏览器地址栏输入:http://127.0.0.1:6600,浏览器显示“Welcome to Node.js!”。

通过以上简单的三步操作,一个基本的Http Server就部署好了,在这个基础上下面我们就来加一些小功能。

三. 实现一个支持表单提交的Http Server

为了实现这一功能我们将面临三个问题:如何模块化服务器代码、如何路由处理不同的Http请求、如何获取Post表单数据

1. 模块化(require, exports)

将如下代码保存为module.js

function abc() {
        console.log("function abc.");
}
    
exports.test = abc;

再将如下代码保存为run.js,然后执行node run.js,可以看到输出“function abc.”

var v = require("./module");

v.test();

其中module.js就是我们模块化出来的文件,这样我们就可以不用将所有代码都写在一个js文件中让node来执行。

2. 路由Http请求

我们可以使用一个字典来存放路由规则,字典定义为这样的结构<url, function>,不同的url请求执行不同的function

var map = {};
map["/"] = controller.home;
map["/home"] = controller.home;
map["/submit"] = controller.submit;
map["/result"] = controller.result;

3. 获取Post表单数据

通过监听request对象中的data事件来存储Post数据,end事件表示Post数据接收完毕。

var postData = "";
request.setEncoding("utf8");
    
request.on("data", function(data) {
        postData += data;
        console.log("Received POST data chunk '" + data + "'.");
});
        
request.on("end", function() {
        route(map, pathname, response, postData);
});

使用node自带的querystring模块获取表单中提交的数据。

var querystring = require("querystring");
var data = querystring.parse(postData).myText;

4. 完整实现

以上三个问题解决了,下面我们就来着手实现,基本可以分为三个模块:server.js, controller.js, router.js和一个index.js。

server.js用于启动服务和接收Http请求。

controller.js类似于ASP.Net MVC中的Controller,用于实现各种请求的处理。

router.js是Http请求的路由器,根据不同的请求执行Controller中相应的方法,未知请求将显示404错误页面。

index.js程序入口。

详细代码下载:SimpleServer

四. Node.js相关学习网站

http://nodeguide.com/index.html

http://www.nodecloud.org

http://news.cnblogs.com/n/138125/

posted @ 2013-03-29 18:02  CanMusic  阅读(3215)  评论(3编辑  收藏  举报