iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 15
0
Modern Web

從零開始認識 Node.js系列 第 15

[Day 15] API 尋寶記 - 現代人離不開的 HTTP

One

前言

今天直接以 Example Code 的方式寫這篇,兩個原因:

  1. 單純覺得一一介紹實用性不高
  2. 不好寫

因此有不了解的地方歡迎在看過文件後留言一起討論,那麼就直接進入主題…

HTTP

[來源] HTTP 一二三

// 載入 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 可以看到

http://ithelp.ithome.com.tw/upload/images/20161214/20102342vca5oaYKDM.png

Browser 輸到 localhost:3000 可以看到 It works. Hello World! ,表示 Server 運作中。

說一下 Framework

以上是基本 Node.js 架 Server 常用內容,不過多數人都會搭配 Framework 使用,省得開發上一些小麻煩,而 Node.js 有哪些 Framework ?

都是常見的 Framework ,若想知道更多可以看 這裡

Express 應該還是 Framework 裡最多開發者使用的,不過新進者可以注意它的更新情況,v3 、 v4 更新速度非常慢,而大版號更新推出 v5.0.0-alpha.2 也超過 1 年沒有推出新進度;繁中官網甚至默默的宣傳起另一個 Framework - LoopBack

http://ithelp.ithome.com.tw/upload/images/20161214/20102342XnrB2tG5NS.png

至於為何官網上會出現 這個翻譯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 。

參考資料

  1. 忽如寄 - 浅析nodejs的http模块
  2. Github iusse - Koa 2.0.0
  3. Ecma TC39 - Finished Proposals

上一篇
[Day 14] API 尋寶記 - File System
下一篇
[Day 16] Node.js 必備工具 - NVM 、 NPM
系列文
從零開始認識 Node.js31

尚未有邦友留言

立即登入留言