2014年12月27日 星期六

Nodejs實作(1) - 新手看Nodejs順便動手做!

因為Nodejs實在是太潮了,不學一下實在跟不上時代,因此便開始摸索。


Nodejs


基本與歷史

第一個版本由Ryan Dahl於2009年釋出,後來,Joyent僱用了Dahl,並協助發展Node.js是一個事件驅動I/O伺服器端的Javascript,基於Google V8 engine,本身是一個Server-side的Javascript,來做個比喻也就是PHP與Apache的結合,但Nodejs不需要伺服器。

適用情況&特色

Nodejs是一個API導向的Server,與Apache為Document導向不同!
Nodejs 特別適用於 real-time 等如即時聊天室應用(data push),然而其也可以與Apache結合,我們可以假想一個情境,當Apache推送一個網頁時(messageroom.html)時,當中有一個區塊正不斷的更新所有使用者的動態最新聊天內容,而Nodejs正是在做這一件事情,提供一個API。
然後Nodejs也有Non-blocking和Event-driven等特性,有興趣更全面瞭解Nodejs可以自行查閱此Slideshare。

NPM

Node Package Manager 是Nodejs裡重要的假設,若大家對於ROR(Ruby on Rails)有了解,其實NPM跟GEM相當類似,都是開發者社群,將已經實做出來的功能打包成套件,讓其他開發者便於使用,發揮社群的力量,以避免重造輪子,而下圖已經顯示npm與gem的數量已不相上下,顯示出Nodejs被廣泛應用程度已不亞於ROR。
Gem vs NPM 2014/05

實際玩玩看


第一個HTTP Server
簡單來說就是透過Nodejs的三個模組(http,url,querystring)來實作一個Http server,分別對:
  1. http://127.0.0.1:3000/
  2. http://127.0.0.1:3000/sounds
  3. http://127.0.0.1:3000/sounds?format=json
回傳不一樣的結果:
  1. Hello World
  2. test
  3. "data":"isJson"

總結

一個字就是潮!
Nodejs可以協助快速打造API,若有想要做Web Application的朋友,可以谷歌一下 Express.js,來協助你!

參考



沒有留言:

張貼留言