今天直接以 Example Code 的方式寫這篇,兩個原因:
因此有不了解的地方歡迎在看過文件後留言一起討論,那麼就直接進入主題…
// 載入 HTTP Module
const http = require('http');
// 指定 PORT 號
const PORT = 3000;
// http.createServer 回傳一個 new http.Server() 並自動加入 Request event ( Function )
var server = http.createServer(( request, response ) => {
// request = http.IncomingMessage , User 送來的 Request ,可以取得 User 送來的 Data
// response = http.ServerResponse , 決定回傳給 User 的內容
// 設定 statusCode 與 Header
response.writeHead(200 , {
"content-type":"text/plain"
});
// 連到 localhost:3000 時顯示的內容
response.write('It works. Hello World!');
// 告訴 Server 這個請求結束
response.end();
});
// 啟動 Server
server.listen(PORT, () => {
// 啟動後做的處理 ( 一般我都會放一個訊息 )
console.info(`INFO: Server is starting by port ${PORT}.`)
});
透過 Node.js 執行這個檔案,在 Terminal 可以看到
Browser 輸到 localhost:3000
可以看到 It works. Hello World!
,表示 Server 運作中。
以上是基本 Node.js 架 Server 常用內容,不過多數人都會搭配 Framework 使用,省得開發上一些小麻煩,而 Node.js 有哪些 Framework ?
都是常見的 Framework ,若想知道更多可以看 這裡 。
Express 應該還是 Framework 裡最多開發者使用的,不過新進者可以注意它的更新情況,v3 、 v4 更新速度非常慢,而大版號更新推出 v5.0.0-alpha.2 也超過 1 年沒有推出新進度;繁中官網甚至默默的宣傳起另一個 Framework - LoopBack
至於為何官網上會出現 這個翻譯StrongLoop / IBM提供 與 LoopBack 可以看看 熱血漢誌 寫得 Express.js 的黑歷史及 Express 未來 ,裡面寫得相當的清楚。
Koa 是 TJ 大神繼 Express 另起的 Framework ,目前 v1 是正式版,下一版 v2 也已準備好,但短時間看不到正式推出,原因是等 ES7 的 async/await 成為 ECMAScript 的穩定標準;好消息是掌管 ECMAScript 標準的Ecma TC39 已將這個標準核定通過放進完成,預計明年 2017 年發佈。
Sails.js 是一套以 Express 的底,實作出的 MVC Framework ,在開發上需要都可以一次給足,要 ORM 有 Waterline ,寫測試有 Mocha 。