學習小結:
1.node.js是什麼?
node.js是編寫高性能網絡服務器的JavaScript工具包(用js開發服務端程序)
2.特點:
單線程,異步,時間驅動,速度快,耗內存
node.js只支持單線程,當大量數據併發的時候只是快速的將對應的事件分配給對應方法異步的去處理,處理完了再繼續進行下一步操作的時候就需要事件的驅動,例如請求一個數據,數據回來之後需要一個事件驅動去拿着請求回來的結果去執行一些操作。
簡單的舉個栗子:
同一時間很多人去醫院看病,掛完號後,統一由護士在分診臺分診到各個對應的科室進行看診~~~護士在這個單線程上什麼都沒有幹,只是把用戶分診到不聽的科室去幹,真正解決事情的是在各科室,這就提高了運行的效率,但是缺點是耗內存
3.優缺點:
優點:
性能高,(機制:單線程,任務分配)
開發效率高,(指代碼的優化效率高,不是代碼的編寫效率高)
應用範圍廣(可運用到桌面系統開發等)
缺點:
新,人少,
中間件少
ide不完善
4.node.js的劣勢和解決方案
默認不支持多核,但用cluster可以解決
默認不支持服務器集羣,node-http-proxy可以解決
使用nginx做負載均衡,靜態的由nginx處理,動態的由node.js處理
forever或node-cluster實現災難恢復
備註:
接下來該學的框架:
express:完善,穩定,文檔全,社區大,
koa:超前,正在完善中,
Hapi:複雜(一個簡單的helloWord都要做很多的堆砌)適合做複雜的大型項目,
sails:基於express