NodeJs安裝與使用入門

zero風來發表於2019-02-16

一、NodeJs簡介

  NodeJS官網上的介紹:

  Node.js is a platform built on Chrome`s JavaScript runtime for easily building fast, scalable network applications. Node.js   uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time   applications that run across distributed devices.

它是一個Javascript執行環境
依賴於Chrome V8引擎進行程式碼解釋
事件驅動
非阻塞I/O(NodeJS遇到I/O事件會建立一個執行緒去執行,然後主執行緒會繼續往下執行的)
輕量、可伸縮,適於實時資料互動應用
單程式,單執行緒

二、NodeJs優缺點

(NodeJS適合運用在高併發、I/O密集、少量業務邏輯的場景(高併發、聊天、實時訊息推送))

1)優點:

  1. 高併發(最重要的優點)

   NodeJs更改連線到伺服器的方式,每個連線發射(emit)一個在NodeJS引擎程式中執行的事件(Event),放進事件佇列當中,而不是為每個連線生成一個新的OS執行緒(併為其分配一些配套記憶體))

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

2)缺點:

  1. 不適合CPU密集型應用;CPU密集型應用給Node帶來的挑戰主要是:由於JavaScript單執行緒的原因,如果有長時間執行的計算(比如大循  環),將會導致CPU時間片不能釋放,使得後續I/O無法發起;

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

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

  3. 可靠性低,一旦程式碼某個環節崩潰,整個系統都崩潰(原因:單程式,單執行緒)

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

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

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

三、NodeJs安裝

  下載地址:http://nodejs.org

  安裝:直接執行

  檢視安裝版本: node -v

四、helloworld測試

1.在Node.js安裝目錄中新建一個檔案helloworld.js,內容如下:

console.log(`HelloWorld`);
2.控制檯中,進入nodejs目錄, 輸入指令: node hello.js

控制檯輸出: HelloWorld

五、瀏覽器訪問測試

1.說明:需設定埠和http引數資訊

2.例子如下:

1)nodejs安裝目錄下建立http.js檔案

複製程式碼
var http=require(`http`);
http.createServer(function (req,res) {

res.writeHead(200,{`Content-Type`:`text/plain`});
res.end(`helloWorld
`);

}).listen(1337,`127.0.0.1`);
console.log(`server running at http://127.0.0.1:1337/`);
複製程式碼
2)在命令列中啟動服務,敲 node http.js

3)瀏覽器中輸入

http://127.0.0.1:1337/
,頁面輸出HelloWorld

六、使用hotnode熱釋出(自動更新指令碼)

1)說明:如果使用章節5中的 node http.js方式釋出,則更改http.js後需要ctrc+c終止,再重新發布,使用hotnode則可以實現熱釋出,有更改時不用重新啟動

2)使用方法

 1. npm -g install hotnode  安裝hotnode,可使用hotnode -v 產看hotnode版本

 2. 啟動時使用 hotnode http.js,像章節5中的例子,更改reponse內容後直接在瀏覽器中重新整理頁面即可

  3. 每更新一次,hotnode會列印兩條記錄, has been changed 和 node process restarted,如下所示:

七、NodeJs模組載入

1)說明:1.NodeJs可以通過模組的名稱或者模組的路徑獲取模組的引用。

     2. 內建模組(core model)在node程式開始時就已經預載入了,如http模組

     3. 非內建模組,模組的引用會對映到一個js檔案

2) 模組載入:使用var model = require(`modelName`);

     1.執行require語句後,如果是內建模組,在node內部會載入內建模組

     2.如果不是內建模組,則會通過npm安裝模組

     3. require返回的物件可以是任意型別的JS物件

3)載入檔案模組

     1.路徑可以是絕對路勁,也可以是相對路徑

         2..js可以省略

     3. 當前路勁需要加上./

var model = require(`/asset/js/model.js`);
var model = require(`/asset/js/model`);
var model = require(`../asset/js/model`);
var model = require(`./main.js`);
4)載入目錄模組

     1.載入方式如下:

var model = require(`../folderName`);
     2.如果資料夾中沒有定義package.json檔案則預設會載入index.js檔案

     3.如果存在package.json檔案,則載入package.js中定義的檔案,package.json中定義格式如下:

{

name:`pack`;
main: `modelName.js`;

}
     4.如果package.json檔案和index.js檔案都不存在,則會載入失敗。

5)如果模組名不是內建模組,不是路勁,不是資料夾,node則試圖從當前目錄中的node_modules資料夾中搜尋,找不到結果則往上一級目錄,直至根目錄

八、npm常用指令(node package manager)

1) 安裝Node模組 —— $ npm install moduleNames

2) 檢視當前目錄下已安裝的node包 ——$ npm list

3) 檢視node模組的package.json資料夾——$ npm view moduleNames

4) 檢視包的依賴關係 ——$ npm view moduleName repository.url

5) 檢視包所依賴的Node的版本 ——$ npm view moduleName engines

6) 更新node模組 ——$ npm update moduleName

7) 解除安裝node模組 ——$ npm uninstall moudleName

相關文章