[MAN鐵人賽]Day 16:NodeJS - Intro & Setup

摘要:[MAN鐵人賽]Day 16:NodeJS - Intro & Setup

NodeJs

from

Node.js顧名思義便是使用JavaScript語言作為基礎的框架,特別的是,相對於jQuery或是YUI等在瀏覽器中運行使用的JavaScript框架,Node.js是作為網站程式的後端框架,就如同PHP或是Java一般開發網站。

換句話說,JavaScript不只可以跑在瀏覽器中,還可以當做網站的伺服器!這個想法是非常的新鮮有趣,主要的原因是在於隨著Gmail等AJAX網站以及技術的興起,許多的程式開發者紛紛投入心力鑽研JavaScript,並且有許多開發心得、優化技巧陸續被發掘,加上瀏覽器之間的競爭越來越激烈,JavaScript的執行效能持續性的突破,因此最終便誕生了Node.js。

有幾個強大的優勢

  1. 以JavaScript為開發語言(建築在Google Chrome所開放原始碼的V8 JavaScript引擎上),可統一前後台開發語言降低工程師學習多語言的困擾
  2. node.js是事件驅動(event-driven)的組成概念
  3. 無阻塞特性(non-blocking),可處理大量I/O的服務端口,避免Server端阻塞
  4. 強大的社群支援與NPM套件管理概念,讓擴充與使用更加方便

NodeJS架構如下(來源):

Node Architecture

NodeJS Event Loop架構(來源):

Event Loop Architecture

而任何一項技術有優點一定就有缺點,NodeJS最大的缺點是不適合做CPU運算等需要多執行序的網頁程式,因為JavaScript本身就是一個單執行序的架構,此缺點的探討可以參考

但回過頭來說,如果你只是要架設一個很簡單與輕量的網站的話NodeJS應該是你非常好的解決方案了。

這邊推薦一個yahoo工程師對NodeJS的介紹(48分鐘英文解說),這個介紹講得非常詳細與完備,強烈建議大家能聽聽看,順便當英文學習摟.

而NodeJS本身提供的API可參考此處

Setup

  1. Node.js官方下載軟體

HelloWorld with NodeJS

  1. 建立一個HelloWorld.js的文件檔案並將下方內容寫入檔案內

     var http = require('http');
     http.createServer(function (req, res) {
     res.writeHead(200, {'Content-Type': 'text/plain'});
     res.end('Hello World\n');
     }).listen(1337, '127.0.0.1');
     console.log('Server running at http://127.0.0.1:1337/');
    
  2. 接者在terminal至該檔案目錄內執行下面指令

     node example.js
    

    這邊會得到看到terminal給你下面的回應代表正常運作

     Server running at http://127.0.0.1:1337/
    
  3. 此時你在透過網頁瀏覽器打開http://127.0.0.1:1337/ 即可看到Hello World字樣

    node screenshot

結語

NodeJS已經是一個F2E不可不學的技術,除了本身可以架設成Backend Service外其實很多如Grunt與Phonegap等專案已經都改成透過NodeJS來Build project的方式,學好NodeJS即可前後端皆用JavaScript一條龍處理到底~!Day-16 over!


如果覺得文章還不錯麻煩請在文章最上面給予推薦,你的支持是小弟繼續努力產出的動力!