好程式設計師web前端學習路線nodeJs學習過程之認識nodejs
好程式設計師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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端分享Nodejs學習筆記之Stream模組程式設計師Web前端NodeJS筆記
- 好程式設計師web前端學習教程之Node Js流程程式設計師Web前端JS
- 好程式設計師web學習路線初步認知react框架程式設計師WebReact框架
- 好程式設計師web前端分享初學者必看web前端學習路線圖程式設計師Web前端
- 好程式設計師web前端分享前端學習路線自學如何找到工作程式設計師Web前端
- 好程式設計師web前端學習路線分享前端基礎面試題程式設計師Web前端面試題
- 好程式設計師web前端學習路線分享函式基礎程式設計師Web前端函式
- 好程式設計師web前端學習路線之Javascript物件導向程式設計師Web前端JavaScript物件
- 好程式設計師web前端學習路線分享Jsonp詳解程式設計師Web前端JSON
- 好程式設計師web前端學習路線分享滾動穿透方法程式設計師Web前端穿透
- 好程式設計師web前端學習路線大廠面試題詳解程式設計師Web前端面試題
- 好程式設計師web前端學習路線分享CSS浮動-文件流篇程式設計師Web前端CSS
- 好程式設計師web前端學習路線之在JavaScript中使用getters和setter程式設計師Web前端JavaScript
- 好程式設計師web前端學習路線分享瞭解AJAX是什麼程式設計師Web前端
- 好程式設計師web前端學習路線分享CSS浮動-清除浮動篇程式設計師Web前端CSS
- 好程式設計師web前端學習路線分享HTML5常見面試題程式設計師Web前端HTML面試題
- 好程式設計師web前端學習路線解答前後端對接問題程式設計師Web前端後端
- 好程式設計師web前端培訓分享學習JavaScript程式設計師Web前端JavaScript
- 好程式設計師Web前端教程分享Vue學習心得程式設計師Web前端Vue
- 學習web前端誤區有哪些-好程式設計師Web前端程式設計師
- 好程式設計師web前端學習路線分享web測試之Js中的函式程式設計師Web前端JS函式
- 好程式設計師web前端分享想要學習前端需要學那些課程程式設計師Web前端
- 好程式設計師Java學習路線之集程式設計師Java
- 好程式設計師web前端培訓分享CSS基礎知識學習程式設計師Web前端CSS
- 好程式設計師web前端學習路線分享純css繪製各種圖形程式設計師Web前端CSS
- 好程式設計師大資料學習路線分享Hbase指令學習程式設計師大資料
- 好程式設計師web前端培訓分享JavaScript學習指南程式設計師Web前端JavaScript
- 好程式設計師web前端分享Vue學習筆記(一)程式設計師Web前端Vue筆記
- 好程式設計師web前端培訓學習筆記Vue學習筆記一程式設計師Web前端筆記Vue
- 好程式設計師Java學習路線JSP物件程式設計師JavaJS物件
- 好程式設計師Java學習路線分享SpringCloud程式設計師JavaSpringGCCloud
- 好程式設計師大資料學習路線分享Map學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享HDFS學習總結程式設計師大資料
- 好程式設計師大資料學習路線分享hdfs學習乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享Actor學習筆記程式設計師大資料筆記
- 好程式設計師web前端培訓學習筆記Vue學習筆記之二程式設計師Web前端筆記Vue
- 好程式設計師web前端培訓分享node學習筆記程式設計師Web前端筆記
- 好程式設計師web前端培訓JavaScript學習筆記DOM程式設計師Web前端JavaScript筆記