1)適用於
JSON API——構建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是壹個不錯的選擇。
2)不合適
Node.js的優勢在CPU使用率高,IO使用率低的應用中無法發揮,比如視頻編碼,人工智能。
簡單的Web應用——這類應用的特點是流量低,物理架構簡單,Node.js無法提供像Ruby的Rails或者Python的Django這樣強大的框架。
no SQL+node . js——如果妳只是想追求時尚,對這兩項技術沒有很深的理解,就不要冒險把妳的業務系統建立在這兩個漂亮的條款上。我們建議使用傳統的數據庫,如MySQL。
如果系統能匹配Node.js的適用場景,就該采取具體措施說服老板了。
說服妳的老板采用Node.js的方法
搭建壹個簡單的原型——花壹周的時間搭建系統某個部分的原型是非常值得的,在某個點上也很容易和老板達成壹致。當系統真正把Node.js應用到某壹部分的時候,就是打開局面的時候了。
找開發人員——首先JavaScript語言的普及率很高,壹般公司的Web前端工程師也很多,這類工程師的學習門檻也很低。這意味著Node.js很容易招到人,或者公司隱藏了壹些專家。
強大的社區支持——node . js社區非常活躍,吸引了許多優秀的工程師,這意味著公司可以很容易地從社區獲得免費或付費的支持。
系統性能考慮——JavaScript引擎Google V8,加上原生的異步IO模型,使得Node.js在性能上表現非常出色,處理成千上萬的並發請求非常輕松。