1. 程式人生 > >Node.js的一些基本概念

Node.js的一些基本概念

1. Node.js簡介

1.1 Node.js是什麼

簡單的說 Node.js 就是執行在服務端的 JavaScript。

  • Node.js是一個能夠在伺服器端執行JavaScript的開放原始碼、跨平臺JavaScript執行環境。
  • Node採用Google開發的V8引擎執行js程式碼,使用事件驅動非阻塞非同步I/O模型等技術來提高效能,可優化應用程式的傳輸量和規模。Node大部分基本模組都用JavaScript編寫。在Node出現之前,JS通常作為客戶端程式設計語言使用,以JS寫出的程式常在使用者的瀏覽器上執行。Node主要用於編寫像Web伺服器一樣的網路應用,這和PHP和Python是類似的。但是Node與其他語言最大的不同之處在於,PHP等語言是阻塞的而Node是非阻塞的
  • Node是事件驅動的。開發者可以在不使用執行緒的情況下開發出一個能夠承載高併發的伺服器。其他伺服器端語言難以開發高併發應用,而且即使開發出來,效能也不盡人意。Node正是在這個前提下被創造出來。Node把JS的易學易用和Unix網路程式設計的強大結合到了一起。
  • Node.js允許通過JS和一系列模組來編寫伺服器端應用和網路相關的應用。核心模組包括檔案系統I/O、網路(HTTP、TCP、UDP、DNS、TLS/SSL等)、二進位制資料流、加密演算法、資料流等等。Node模組的API形式簡單,降低了程式設計的複雜度。使用框架可以加速開發。常用的框架有Express.js、Socket.IO和Connect等。

1.2 Node.js的歷史

1.3 Node.js主要能幹什麼

  • Web服務API,比如REST
  • 實時多人遊戲
  • 後端的Web服務,例如跨域、伺服器端的請求
  • 基於Web的應用
  • 多客戶端的通訊,如即時通訊

2. Node.js基本使用

2.1 基本使用

這裡是基於windows下cmd進行Node.js命令的編寫

除此之外,編寫js檔案,在命令列中通過 “node fileName” 的方式也可以執行檔案中的命令

當然,上面兩種方式在windows下都極為不方便,我採用的是HBuilder中整合Node.js外掛的方式進行開發和除錯

2.2 建立簡單應用

如下圖,我建立了一個簡單應用並啟動

可以在本機8888埠檢視到響應

下面對這段程式碼進行分析

2.3 Node.js應用的組成部分

Node.js應用由以下三部分組成:

  • 引入required 模組:我們可以使用 require 指令來載入 Node.js 模組。
  • 建立伺服器:伺服器可以監聽客戶端的請求,類似於 Apache 、Nginx 等 HTTP 伺服器。
  • 接收請求與響應請求: 伺服器很容易建立,客戶端可以使用瀏覽器或終端傳送 HTTP 請求,伺服器接收請求後返回響應資料。

2.3.1 引入 required 模組

使用 require 指令來載入 http 模組,並將例項化的 HTTP 賦值給變數 http

//請求(require)Node.js 自帶的 http 模組,並且把它賦值給 http 變數。
var http = require('http');

2.3.2 建立伺服器

使用 http.createServer() 方法建立伺服器,並使用 listen 方法繫結 8888 埠。 函式通過 request, response 引數來接收和響應資料。

//呼叫 http 模組提供的函式: createServer 。這個函式會返回 一個物件,這個物件有一個叫做 listen 的方法,這個方法有一個數值引數, 指定這個 HTTP 伺服器監聽的埠號。
http.createServer(function(request,response){    
    //傳送http頭部           http狀態值: 200:OK         內容型別:text/plain
    response.writeHead(200,{'Content-Type':'text/plain'});    
    //傳送響應資料
    response.end('Hello EveryOne!!');    
    
    //服務響應繫結在8888埠
}).listen(8888);

2.3.3 接收請求和響應請求

以上程式碼我們完成了一個可以工作的 HTTP 伺服器。啟動該伺服器,通過瀏覽器訪問或者自定義傳送請求可測試響應。