天天看點

Hello NodeJS - 準備工作

1.為什麼用NodeJS

作為同樣的初學者,在這方面沒多大的發言權.

就我個人而言, 純JS解決方案是導緻我研究它的興趣點之一,

作為一個前端JS控,你是不是在為extjs,jquery歡呼的同時,對着那linux shell,java,php兩眼發昏?OK,你需要的救世主是NodeJS。

一個不錯的幻燈片: http://www.slideshare.net/q3boy/nodejs-nae

一些參考文章:

  • http://www.infoq.com/cn/news/2012/05/suggest-boss-nodejs

适用場景:

  • JSON APIs——建構一個Rest/JSON API服務,Node.js可以充分發揮其非阻塞IO模型以及JavaScript對JSON的功能支援(如JSON.stringfy函數)
  • 單頁面、多Ajax請求應用——如Gmail,前端有大量的異步請求,需要服務後端有極高的響應速度
  • 基于Node.js開發Unix指令行工具——Node.js可以大量生産子程序,并以流的方式輸出,這使得它非常适合做Unix指令行工具
  • 流式資料——傳統的Web應用,通常會将HTTP請求和響應看成是原子事件。而Node.js會充分利用流式資料這個特點,建構非常酷的應用。如實時檔案上傳系統transloadit
  • 準實時應用系統——如聊天系統、微網誌系統,但Javascript是有垃圾回收機制的,這就意味着,系統的響應時間是不平滑的(GC垃圾回收會導緻系統這一時刻停止工作)。如果想要建構硬實時應用系統,Erlang是個不錯的選擇

不适用: 

  • CPU使用率較重、IO使用率較輕的應用——如視訊編碼、人工智能等,Node.js的優勢無法發揮
  • 簡單Web應用——此類應用的特點是,流量低、實體架構簡單,Node.js無法提供像Ruby的Rails或者Python的Django這樣強大的架構
  • NoSQL + Node.js——如果僅僅是為了追求時髦,且自己對這兩門技術還未深入了解的情況下,不要冒險将業務系統搭建在這兩個漂亮的名詞上,建議使用MySQL之類的傳統資料庫
  • 《我為什麼向後端工程師推薦NodeJS》 http://cnodejs.org/blog/?p=780

引用 我想不僅僅是NodeJS,當我們要引入任何一種新技術前都必須要搞清楚幾個問題:

1.我們遇到了什麼問題?

2.這項新技術解決什麼問題,是否契合我們遇到的問題?

3.我們遇到問題的多種解決方案中,目前這項新技術的優勢展現在哪兒?

4.使用新技術,帶來哪些新問題,嚴重麼,我們能否解決掉?

  • 《Node入門 » 一本全面的Node.js教程》http://www.nodebeginner.org/index-zh-cn.html

             -- 一本很不錯的入門指引。不過不要被其中簡單的示例吓到了,Node有很多類庫來幫助你。

  • 幾個回答nodejs适合的場景的文章:

http://sammor.iteye.com/blog/969300

http://www.360doc.com/content/12/0110/18/5447793_178573224.shtml

http://www.cnblogs.com/rmbteam/archive/2011/08/02/2124885.html

http://www.ibm.com/developerworks/cn/opensource/os-nodejs/index.html?ca=drs

2.Node相關資源

  • Node的第三方子產品:https://github.com/joyent/node/wiki/modules
  • NodeJS國内社群:http://club.cnodejs.org
  • 在cloundfoundry免費部署:http://cndocs.cloudfoundry.com/tools/vmc/installing-vmc.html
  • 《Express JS 中文入門指引手冊》http://www.csser.com/tools/express-js/express-guide-reference-zh-CN.html

             -- @一回 翻譯的NodeJS的一個主流類庫的使用手冊。(注:最後的API他沒翻譯,建議看完後再去看看原版。)

3.NodeJS安裝配置

  • 官方網站及下載下傳位址: http://nodejs.org/
  • 建議在Ubuntu下開發.win下有一些第三方類庫編譯有相容性問題(大部分都通過github最新源碼解決)
  • 若是win下,安裝後建議環境變量PATH添加node的安裝目錄,将增加node和npm兩個指令.

4.開發工具

是不是迫不及待了? 好,工欲善其事,必先利其器。下面推薦幾個輕量級的IDE (當然,你可以用萬能的Eclipse)

  • Sublime Text 2

我個人是在使用這個編輯器,最近挺流行的,用的挺舒服的,可以考慮把UltraEdit丢掉.

永久試用,支援多種作業系統. http://www.sublimetext.com/

來自盛大創新院的@大城小胖 最近在大力推廣: http://xbeta.info/sublime-text2.htm

Hello NodeJS - 準備工作
  • Nide:  http://www.oschina.net/p/nide

Nide是一個基于Web的開源的Node.js IDE,在MIT License下開源,代碼托管于GitHub。其設計思想是簡單、易用。Nide最初是在一個叫做Node Knockout的48小時程式設計競賽中開發産生的。

  • 更多:  http://club.cnodejs.org/topic/4f32389669bab4d6760389c7

5.WEB項目初始化

  • 安裝Express
    • Express是NodeJS上的一個常用的類庫,用于簡化開發。
    • 安裝方法,先在指令行執行: npm install -g express
    • 你也可以用metor.js, derby.js等架構。
  • 初始化項目
    • 指令行執行:  express d:\workspace\TestNode
    • 進入目錄: cd  d:\workspace\TestNode
    • 安裝依賴: npm install -d
    • 目錄樹截圖
    • Hello NodeJS - 準備工作
  • 運作
    • 運作: node app.js
    • 通路: http://localhost:3000

6.版本管理

  • 安裝GIT
    • http://code.google.com/p/msysgit/downloads/list?can=2&q=%22Full+installer+for+official+Git+for+Windows%22
    • 一本不錯的入門教程:http://progit.org/book/zh/
    • 可以看看git-flow
    • 記得配置環境變量
  • 安裝TortoiseGit  -- win用戶端
    • http://code.google.com/p/tortoisegit/
  • 送出
    • d:\workspace\TestNode
    • git init
    • git add .
    • git commit -m 'project init'