,html
1、Node.js介紹前端
(2)依賴於Chrome V8引擎進行代碼解釋;node
(3)事件驅動;web
(4)非阻塞I/O;編程
(5)輕量、可伸縮,適於實時數據交互應用;windows
(6)單進程,單線程;瀏覽器
windows的安裝很簡單,幾乎是一鍵安裝下一步下一步這樣的,至於Linux的話,以Ubuntu16.04爲例,sudo apt-get install nodejs和 sudo apt-get install nodejs-legacy輸入這兩條命令便可安裝成功。網絡
3、Node.js的應用場景併發
參考該篇博文:https://www.cnblogs.com/gassnake999/p/7044583.html負載均衡
應用場景一共15個,以下所示:
(1) Web開發:Express + EJS + Mongoose/MySQL;
(2) REST開發:Restify;
(3)Web聊天室(IM):Express + Socket.io;
(4) Web爬蟲:Cheerio/Request;
(5)Web博客:Hexo;
(6)Web論壇: nodeclub;
(7)Web幻燈片:Cleaver;
(8)前端包管理平臺: bower.js;
(9)OAuth認證:Passport;
(10)定時任務工具: later;
(11)瀏覽器環境工具: browserify;
(12)命令行編程工具:Commander;
(13) Web控制檯工具: tty.js;
(14)客戶端應用工具: node-webkit;
(15)操做系統: node-os;
其實還有更多隻不過本文並無列舉出來,總而言之,只有想不到沒有作不到。
優勢:
(1)高併發(最重要的優勢);
(2)適合I/O密集型應用;
缺點:
(1)不適合CPU密集型應用,CPU密集型應用給Node帶來的挑戰主要是:因爲JavaScript單線程的緣由,若是有長時間運行的計算(好比大循環),將會致使CPU時間片不能釋放,使得後續I/O沒法發起;
解決方案:分解大型運算任務爲多個小任務,使得運算可以適時釋放,不阻塞I/O調用的發起;
(2)只支持單核CPU,不能充分利用CPU;
(3)可靠性低,一旦代碼某個環節崩潰,整個系統都崩潰;
緣由:單進程,單線程
解決方案:
a.Nnigx反向代理,負載均衡,開多個進程,綁定多個端口;
b.開多個進程監聽同一個端口,使用cluster模塊;
(4)開源組件庫質量良莠不齊,更新快,向下不兼容;
(5)Debug不方便,錯誤沒有stack trace;