一. 安裝和部署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 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相關學習網站