好程式設計師web前端學習路線nodeJs學習過程之認識nodejs

好程式設計師IT發表於2019-08-01

  好程式設計師web前端學習路線nodeJs學習過程之認識nodejs,nodeJs只是聽說過,沒見過,沒玩過。從新手開始,我想慢慢掌握它。

  •   首先,我想知道nodeJs是什麼?幹什麼用的。

  來源於node官網與網路:

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行環境。 
Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。

Node.js是一套用來編寫高效能網路伺服器的JavaScript工具包,一系列的變化由此開始。比較獨特的是,Node.js會假設在POSIX環境下執行Linux 或 Mac OS X。
如果是在Windows下,那就需要安裝MinGW以獲得一個仿POSIX的環境。在Node中,Http是首要的。Node為建立http伺服器作了最佳化,所以在網上看到的大部分示例和庫都是集中在web上(http框架、模板庫等)。

  做些什麼呢

1. 用於web伺服器端;

2. javascript工具包;

3. 和http有著密切的關係。
4. 快速構建網路服務及應用;

5. 封裝谷歌v8引擎。

nodeJs到底是什麼呢,它是伺服器端js執行平臺,是一個javascript的執行環境和庫。可以編寫後臺系統或者伺服器端的Javascript程式碼,交給 Node.js來解釋執行。就像html遇到php會由php來解釋,jsp由jvm解釋執行一樣。

  他還有很多的特性就不一一舉例了。Nodejs作為後起之秀的後臺,也有很多吸引人的地方:單執行緒、V8虛擬機器、事件驅動、非阻塞IO;nodejs可以不新增額外執行緒的情況下,依然可以對任務進行並處理 --node是單執行緒的。它是透過事件輪詢來實行操作的,對此我們可以充分的利用這一點,儘可能的避免阻塞,取而代之。

  那nodejs是做什麼的?服務端類似於Java,web應用等;

  舉個例子:

var http = require('http');

server = http.createServer(function (req, res) {

   res.writeHeader(200, {"Content-Type": "text/plain"});

   res.end("Hello");

})

server.listen(8000);

console.log("httpd start @8000");

  確保nodejs環境安裝成功,對此編譯執行透過,在瀏覽器位址列輸入localhost:8000,可以看到輸出。

nodeJS的優缺點

  優點:1. 高併發

2. 適合I/O密集型應用

  缺點:1. 不適合CPU密集型應用;由於JavaScript單執行緒的原因,如果有長時間執行的計算(比如大迴圈),將會導致CPU時間片不能釋放,使得後續I/O無法發起;

  解決方案:分解大型運算任務為多個小任務,使得運算能夠適時釋放,不阻塞I/O呼叫的發起;

2. 只支援單核CPU,不能充分利用CPU

3. 可靠性低,一旦程式碼某個環節崩潰,整個系統都崩潰

  原因:單程式,單執行緒

  解決方案:(1)Nnigx反向代理,負載均衡,開多個程式,繫結多個埠;

  (2)開多個程式監聽同一個埠,使用cluster模組;

4. 開源元件庫質量參差不齊,更新快,向下不相容

5. Debug不方便,錯誤沒有stack trace


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2652490/,如需轉載,請註明出處,否則將追究法律責任。

相關文章