Node.js Web 模組

來源:互聯網
上載者:User

標籤:

 什麼是 Web 服務器?

Web伺服器一般指網站伺服器,是指駐留於網際網路上某種類型電腦的程式,Web伺服器的準系統就是提供Web資訊瀏覽服務。它只需支援HTTP協議、HTML文檔格式及URL,與用戶端的網路瀏覽器配合。

大多數 網頁伺服器都支援服務端的指令碼語言(php、python、ruby)等,並通過指令碼語言從資料庫擷取資料,將結果返回給用戶端瀏覽器。

 

目前最主流的三個Web伺服器是Apache、Nginx、IIS。

Web 應用程式架構

  • Client - 用戶端,一般指瀏覽器,瀏覽器可以通過 HTTP 協議向伺服器請求資料。

  • Server - 服務端,一般指 Web 服務器,可以接收用戶端請求,並向用戶端發送響應資料。

  • Business - 業務層, 通過 Web 服務器處理應用程式,如與資料庫互動,邏輯運算,調用外部程式等。

  • Data - 資料層,一般由資料庫組成。

使用 Node 建立 Web 服務器

Node.js 提供了 http 模組,http 模組主要用於搭建 HTTP 服務端和用戶端,使用 HTTP 伺服器或用戶端功能必須調用 http 模組,代碼如下:

var http = require(‘http‘);

以下是示範一個最基本的 HTTP 伺服器架構(使用8081連接埠),建立 server.js 檔案,代碼如下所示:

var http = require(‘http‘);var fs = require(‘fs‘);var url = require(‘url‘);// 建立伺服器http.createServer( function (request, response) {     // 解析請求,包括檔案名稱   var pathname = url.parse(request.url).pathname;      // 輸出請求的檔案名稱   console.log("Request for " + pathname + " received.");      // 從檔案系統中讀取請求的檔案內容   fs.readFile(pathname.substr(1), function (err, data) {      if (err) {         console.log(err);         // HTTP 狀態代碼: 404 : NOT FOUND         // Content Type: text/plain         response.writeHead(404, {‘Content-Type‘: ‘text/html‘});      }else{                  // HTTP 狀態代碼: 200 : OK         // Content Type: text/plain         response.writeHead(200, {‘Content-Type‘: ‘text/html‘});                  // 回應檔內容         response.write(data.toString());      }      //  發送響應資料      response.end();   });   }).listen(8081);// 控制台會輸出以下資訊console.log(‘Server running at http://127.0.0.1:8081/‘);

接下來我們在該目錄下建立一個 index.htm 檔案,代碼如下:

<html><head><title>Sample Page</title></head><body>Hello World!</body></html>

執行 server.js 檔案:

$ node server.jsServer running at http://127.0.0.1:8081/

接著我們在瀏覽器中開啟地址:http://127.0.0.1:8081/index.htm,顯示如所示:

執行 server.js 的控制台輸出資訊如下:

Server running at http://127.0.0.1:8081/Request for /index.htm received.     #  用戶端請求資訊


使用 Node 建立 網頁用戶端

Node 建立 網頁用戶端需要引入 http 模組,建立 client.js 檔案,代碼如下所示:

var http = require(‘http‘);// 用於請求的選項var options = {   host: ‘localhost‘,   port: ‘8081‘,   path: ‘/index.htm‘  };// 處理響應的回呼函數var callback = function(response){   // 不斷更新資料   var body = ‘‘;   response.on(‘data‘, function(data) {      body += data;   });      response.on(‘end‘, function() {      // 資料接收完成      console.log(body);   });}// 向服務端發送請求var req = http.request(options, callback);req.end();

新開一個終端,執行 client.js 檔案,輸出結果如下:

$ node client.js<html><head><title>Sample Page</title></head><body>Hello World!</body></html>

執行 server.js 的控制台輸出資訊如下:

Server running at http://127.0.0.1:8081/Request for /index.htm received.   # 用戶端請求資訊

Node.js Web 模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.