本篇轉載於我的github.io
- 書籍資訊 : Node for Front-End Developers by Garann Means(O'Reilly).copyright 2012 Garann Means, 978-1-449-31883-3
- 參考網址:Node for Front-End Developers
本書目錄:
- Chapter 1 Getting Node Set Up
- Chapter 2 Serving Simple Content
- Chapter 3 Interaction with the Client
- Chapter 4 Server-Side Templates
- Chapter 5 Data Sources and Flow Control
- Chapter 6 Model-View-Controller and Sharing Code
我的前言
- 這本書今年暑假以600多元台幣購入(蠻貴的...),等了快兩週才寄來,至今才開始看:P
- 內容只有 6 個章節,僅僅45頁。
- 雖然 node 之於我,我並非熟手,但老實說這本書應該不像是給初學者看的,建議裝過 node.js,裝過 npm 的人看看。
- 作為 Front-End 寫 node.js,會有一些不適應症,我覺得這是正常的,但這也才是有趣的地方,一直要去想 How about write JavaScript on Back-End,跟自己所熟悉的 browser 的環境,完全是不同的兩世界。
- 輕鬆學就好,雖然目前工作沒有大量使用,不過 Nice to Know。
- 把 node 裝起來,如何 scaffolding 一個 web (所謂 scaffolding 就是鷹架,你可以把這裡的鷹架想像成一棟大樓的樑柱結構,如何快速建立一個具有基礎架構的 web Application)。
- node 就像 web server。
- 了解 node 怎麼接資料,在 php 我們用 $_GET 與 $_POST 接收 get 與 post 資料,那 node 呢?
- 使用 socket.IO 實踐 realtime client-server 的溝通。
- 使用 template engine 寫 web。(我還沒看到那個章節,不過就我所知的 template engine 有 EJS, Jade)。
- 如何連接 database, 如何存資料。
- 介紹 MVC(Model-View-Controller) pattern。
Chapter 1
Getting Node Set Up
前言
- 說明 node 的安裝,本來 node 是裝在 Unix like 的作業系統,但現在 windows 也能裝了,看你的環境是什麼,就怎麼裝。
- 本書是假設讀者使用 Mac 的作業環境,但如果你不是,也不用擔心,如果有需要其他作業環境需要注意的事項,也會提及。
Node 跟 NPM
$ git clone git://github.com/joyent/node.git
$ cd node
$ git checkout v0.6.6
$ ./configure
$ make
$ nake install
來源出處:Node for Front-End Developers by Garann Means(O'Reilly).copyright 2012 Garann Means, 978-1-449-31883-3 . page1
- 利用 git checkout vx.x.x 是為了切換到穩定的 node 版本,你可以自由選擇你要切到什麼版本,利用 git tag 指令查看有哪些版本可用。
- 假如你想安裝 npm,可以直接透過 command-line :
$ curl http://npmjs.org/install.sh | sh。 - 什麼是NPM? npm 是 Node Package Manager,這個 manager 包含了很多 node 的模組(Module),以及第三方套件,讓你夠過一個指令就可以下載你要的套件。
REPL
- Real-Eval-Print-Loop,這有點難解釋耶… 簡單來說就是可以在 command-line 直接打指令,就像我們會在 chrome 的 F12 (開發人員)的 console 打一些測試 JavaScript 的指令(ex:alert('AAA'); 或是 console.log('BBB');)的感覺,console 會直接回應你你所打的指令。
- 參考:Read–eval–print loop-From Wikipedia, the free encyclopedia
- 這裡之所以會提到 REPL 其實是因為 node 本身就是一個指令,如果你不知道你要執行哪一個檔案(application),你可以直接在 command-line 輸入 node,就會進入到 REPL 的模式,然後做一些簡單的運算他也會真的回應你,真的就跟瀏覽器的console蠻像的。
如果你要跳出 REPL 模式必須按 Ctrl+C跳出(有的人必須按兩次)。
Ctrl+C 是什麼? 這個關係到 Linux 的程序訊號(signal),所謂程序訊號就是送出一個訊號給某個程序,控制該程序的行為,因為 signal 有很多種,ctrl+c 其實就是一種訊號,該訊號是 SIGINT(2號),代表著中斷或停止程序。
File Organization
- 只要安裝了 node, 你就可以開始規劃你的 web application,你可以把資料放在任何地方。不過資料夾內的檔案結構,會希望你照著一些常見的規則去規劃,比方說 web application 的目錄下要有 pacjage.json, 甚至你的主程式的檔案會放在資料夾目錄下。
- 一些常見的目錄我們希望在目錄的第一層就看到:
- node_modules : 放一些在你的 local 從 npm 所安裝的 modules
- lib : 屬於這個 application 共用或是自訂的 modules
- public / www / similar : 主要一些靜態檔案(static files),或是client-side用的一些檔案。
- 目錄的規劃全看你的需求,如果你要打造的是具有 MVC patter 的 web application,建議你的資料夾底下要有 models, views, contollers 這些資料夾。
- 如果你要使用像是 Express 這樣的 Framework ,通常你的目錄底下還有一個 routes 的資料夾。
- package.json 這個檔案蠻重要的,這個檔案會記錄你的 application 需要(會)跟哪些 module(模組) 具有相依性。
{
"name" : "myNode",
"author" : "WinWu",
"description" : "This is my node",
"version" : "0.0.1",
"dependencies" : {
"express" : "2.5.x"
},
"engine" : "0.6.x",
"main" : "app,js"
}
- dependencies 是蠻重要的一個部分,假如有一天把這個 web application 移到別的地方或目錄下,只需要透過 npm install 指令,就可以一次把所有這個 web application 所需要相依的 module 都安裝好。
- 關於 package.json ,以前我有寫過一篇文章,有興趣歡迎賞臉觀看 :P node.js 一個package的檔案結構
沒有留言:
張貼留言
若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD