無涯教程: Node.js - Web模組
Web伺服器是一個軟體應用程式,它處理HTTP客戶端(例如Web瀏覽器)傳送的HTTP請求,並返回網頁以響應客戶端, Web伺服器通常提供html文件以及影像,樣式表和指令碼。
Web應用架構
Web應用程式通常分為四層-
Client - 該層由Web瀏覽器,移動瀏覽器或可以向Web伺服器發出HTTP請求的應用程式組成。
Server - 此層具有Web伺服器,可以攔截客戶端發出的請求並將響應傳遞給他們。
Business Layer - 該層包含應用伺服器,Web伺服器利用該伺服器來執行所需的處理。
Data Layer - 此層包含資料庫或任何其他資料來源。
建立Web伺服器
Node.js提供了一個 http 模組,該模組可用於建立伺服器的HTTP客戶端,以下是偵聽8081埠的HTTP伺服器的最基本結構。
建立一個名為server.js的js檔案-
var http=require('http'); var fs=require('fs'); var url=require('url'); //Create a server http.createServer( function (request, response) { //Parse the request containing file name var pathname=url.parse(request.url).pathname; //Print the name of the file for which request is made. console.log("Request for " + pathname + " received."); //Read the requested file content from file system fs.readFile(pathname.substr(1), function (err, data) { if (err) { console.log(err); //HTTP Status: 404 : NOT FOUND //Content Type: text/plain response.writeHead(404, {'Content-Type': 'text/html'}); } else { //Page found //HTTP Status: 200 : OK //Content Type: text/plain response.writeHead(200, {'Content-Type': 'text/html'}); //Write the content of the file to response body response.write(data.toString()); } //Send the response body response.end(); }); }).listen(8081); //Console will print the message console.log('Server running at ');
接下來,讓我們在建立server.js的同一目錄中建立以下名為index.htm的html檔案。
Sample Page Hello World!
現在讓我們執行server.js以檢視輸出-
$node server.js
驗證輸出。
Server running at
向伺服器發出請求
在任何瀏覽器中開啟index.htm,以檢視以下輸出。
在伺服器端驗證輸出。
Server running at Request for /index.htm received.
建立Web客戶端
可以使用 http 模組建立Web客戶端。讓我們檢查以下示例。
建立一個名為client.js的js檔案-
var http=require('http'); //Options to be used by request var options={ host: 'localhost', port: '8081', path: '/index.htm' }; //Callback function is used to deal with responsevar callback=function(response) { //Continuously update stream with data var body=''; response.on('data', function(data) { body += data; }); response.on('end', function() { //Data received completely. console.log(body); });} //Make a request to the servervar req=http.request(options, callback); req.end();
現在從不同於server.js的其他命令終端執行client.js以檢視輸出-
$node client.js
驗證輸出。
Sample Page Hello World!
在伺服器端驗證輸出。
Server running at Request for /index.htm received.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2796728/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 無涯教程:Node.js - OSNode.js
- 無涯教程: Node.js - 事件傳送Node.js事件
- 無涯教程:Docker - Python安裝DockerPython
- 無涯教程:Docker - Java安裝DockerJava
- Node.js教程15:net模組初探Node.js
- 無涯教程: Laravel 8 - 模型觀察者Laravel模型
- 無涯教程: Nginx - 指令與上下文Nginx
- 無涯教程: Laravel 8 - 自定義函式介紹Laravel函式
- 【核心模組】node.jsNode.js
- Node.js path模組Node.js
- Node.js模組系統Node.js
- Node.js 的 http模組Node.jsHTTP
- Node.js 的 模組化Node.js
- Node.js 系列 - 模組機制Node.js
- electron 使用 Node.js 原生模組Node.js
- Node.js util 模組解讀Node.js
- Node.js process 模組解讀Node.js
- Node.js之模組機制Node.js
- Node.js 系列 – 模組機制Node.js
- node.js之path模組的使用Node.js
- Node.js之readline模組的使用Node.js
- spring boot(三)web模組Spring BootWeb
- Python教程-6模組Python
- 在Node.js中使用C++模組Node.jsC++
- 淺析node.js的模組載入Node.js
- Node.js child_process模組解讀Node.js
- node.js中的模組實現原理Node.js
- Python模組、第三方模組安裝、模組匯入教程Python
- 無侵入引入Flutter模組Flutter
- Node.js 如何處理 ES6 模組Node.js
- Node.js基礎知識之Path模組Node.js
- 好程式設計師web前端教程之前端模組化開發程式設計師Web前端
- 好程式設計師web前端教程分享js中的模組化二程式設計師Web前端JS
- 好程式設計師web前端教程分享js中的模組化一程式設計師Web前端JS
- WEB 前端模組化都有什麼?Web前端
- 極簡 Node.js 入門 - 1.2 模組系統Node.js
- 好程式設計師web前端教程之Node.Js流程程式設計師Web前端Node.js
- wsgiref模組、web框架、django框架簡介Web框架Django