NodeJs安裝與使用入門


一、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.

  1. 它是一個Javascript運行環境
  2. 依賴於Chrome V8引擎進行代碼解釋
  3. 事件驅動
  4. 非阻塞I/O(NodeJS遇到I/O事件會創建一個線程去執行,然后主線程會繼續往下執行的
  5. 輕量、可伸縮,適於實時數據交互應用
  6. 單進程,單線程

二、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(request, response){
    response.writeHead(200,{'Content-Type':'text/html'});
    response.write('HelloWorld');
    response.end()

}).listen(8000);

 2)在命令行中啟動服務,敲 node  http.js

 3)瀏覽器中輸入 http://localhost:8080/ ,頁面輸出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

   

 

 

 參考:http://home.cnblogs.com/u/snandy/

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM