天天看點

前端開發Javascript進階Nodejs

曾經有下面的同僚問我,“精通了前端的js,是不是入手nodejs會很快就能入手幹活了”。

由此我梳理了一下Node.js、ES、JS之間的差別,前端開發人員轉Nodejs需要關注點。

Node.js、ES、JS之間的差別

  1. 1.ES定義了文法,寫JS和nodejs都必須遵守的;

包含變量定義、循環、判斷、函數

原型、原型鍊、作用域、閉包、異步

但是不能操作DOM、不能監聽click事件、不能發送ajax請求、

不能處理http請求,不能操作檔案;

  1. JS是 使用es的文法規範,外加Web API(w3c标準)
es+Web API結合起來,才能完成浏覽器端的任何操作;
  1. NodeJs是 使用了es文法規範,外加nodejs API;
es+Nodejs API結合起來,才能外出server端的任何操作;
  1. commonJs子產品化:
Node預設有的子產品化規範;
  1. Nodejs debugge:
在vscode中有Node Debugger的調試功能;

前端開發人員轉Nodejs需關注的點:

雖然說語言相同,但是由于運作環境不用,思維也會不同。舉個例子:安卓開發與java server端都是同用java語言,但是不能說參與過安卓開發的同僚,就能投入到java server的開發工作中。其中前端轉node思維主要注意點如以下:

  1. 服務的穩定性:

server端可能會總受各種惡意攻擊與誤操作;

單個用戶端可以意外挂掉,但是服務端不能随便挂掉;

優化點:是以使用PM2作為守護線程;

  1. 考慮記憶體和CPU(優化與拓展):

用戶端獨占一個浏覽器的,記憶體和CPU都不是問題;

server端需要承載很多請求,cpu和記憶體都是稀缺的資源;

優化點:使用stream寫日志,使用redis存session;

  1. 日志記錄:

前端也會參與寫日志,但是隻是日志的發起方,不關心後續;

server端要記錄日志,存儲日志,分析日志,前端不關心;

優化點:使用stream寫日志,如何分析日志;

  1. 安全:

server端要随時準備接受各種惡意攻擊,前端則少很多;

如:越權操作,資料庫攻擊等;

優化點:登入驗證,預防xss攻擊,sql攻擊;

  1. 叢集與服務拆分:

産品發展速度快,流量可能會迅速增加;

如何通過拓展機器和服務拆分來承載大流量;

優化點:需要從設計上支援服務拆分

繼續閱讀