Node.js 建立 Web 伺服器

Node.js 框架主要用於建立基於伺服器的應用程式。該框架可以輕鬆地用於建立可以向使用者提供內容的 Web 伺服器。

已經存在各種模組,例如 httprequest 模組,來有助於在 web 伺服器空間中處理與伺服器相關的請求。我們將瞭解如何使用 Node.js 建立基本 Web 伺服器應用程式。

Node 作為 HTTP Web 伺服器

讓我們看一下如何建立和執行我們的第一個 Node.js 應用程式的示例。

我們的應用程式將建立一個簡單的伺服器模組,它將偵聽埠號 7000。如果通過此埠上的瀏覽器發出請求,則伺服器應用程式將向客戶端傳送 Hello World 響應。

var http=require('http')

var server=http.createServer ((function (request, response)
                               {
    response.writeHead (200,
                        { "Content-Type": "text/plain"});
    response.end ("Hello World\n");
}));

server.listen (7000);

程式碼說明:

  1. require 函式的基本功能是它讀取[JavaScript](/ interactive-javascript-tutorials.html)檔案,執行該檔案,然後繼續返回 exports 物件。所以在我們的例子中,由於我們想要使用 http 模組的功能,我們使用 require 函式從 http 模組獲取所需的函式,以便它可以在我們的應用程式中使用。
  2. 在這行程式碼中,我們正在建立一個基於簡單函式的伺服器應用程式。只要向我們的伺服器應用程式發出請求,就會呼叫此函式。
  3. 收到請求後,我們要傳送標頭型別為 200 的響應。此數字是在向客戶端傳送成功響應時在 http 標頭中傳送的正常響應。
  4. 在響應本身中,我們傳送字串 Hello World
  5. 然後我們使用 server.listen 函式使我們的伺服器應用程式在埠號 7000 上偵聽客戶端請求。你可以在此處指定任何可用埠。

如果命令執行成功,則在瀏覽器中執行程式碼時將顯示出 Hello World

  • 你可以清楚地看到,如果我們瀏覽到埠 7000 上的 localhost 的 URL,你將在頁面中看到字串 Hello World
  • 因為在我們的程式碼中我們專門提到伺服器要偵聽埠號 7000,我們能夠在瀏覽到這個 URL 時檢視輸出。

在 Node.js 中處理 GET 請求

在 Node.js 中進行 GET 請求從另一個站點獲取資料相對非常簡單。要在節點中發出 Get 請求,我們需要先安裝 request 模組。這可以通過在命令列中執行以下行來完成

npm install request

上面的命令請求 Node 包管理器下載所需的 request 求模組並相應地安裝它們。

成功安裝 npm 模組後,命令列將顯示已安裝的模組名稱和版本:<name>@<version>。比如,

request@2.67.0 node_modules\request

在上面的快照中,你可以看到已下載並安裝了 request 模組以及版本號 2.67.0。

現在讓我們看看可以使用這個 request 命令的程式碼。

var request = require("request");
    request("http://www.google.com",function(error,response,body)
    {
        console.log(body);
    });

程式碼說明:

  1. 我們正在使用最後一步安裝的 require 模組。該模組具有可用於向網站發出 GET 請求的必要函式。
  2. 我們正在向 www.google.com 提出 GET 請求,並在收到回覆後呼叫函式。收到響應後,引數(錯誤,響應和正文)將具有以下值
    • Error 錯誤 - 如果在使用 GET 請求時收到任何錯誤,將在此處記錄。
    • Response 響應 - 響應將具有在響應中發回的 http 標頭。
    • Body 正文 - 正文將包含 Google 傳送的回覆的全部內容。
  3. 在這裡,我們只是將 body 引數中收到的內容寫入 console.log 檔案。所以基本上,無論我們通過** www.google.com** 獲得什麼,都會被寫入 console.log。

本節概要

  • Node.js 框架可用於使用 http 模組開發 Web 伺服器。可以使應用程式偵聽特定埠,並在嚮應用程式發出請求時向客戶端傳送響應。
  • request 模組可用於從網站獲取資訊。該資訊將包含從相關網站請求的網頁的全部內容。