Node JS http模組
阿新 • • 發佈:2018-11-04
前言
本人所發的NodeJS系列學習筆記參考了一些書籍、官方文件以及一些前輩的程式碼及註釋,可能有些地方理解的不對。如果有誤,歡迎到我的github上提出。當然,希望可以點個星星。
node-http
Node.js提供了http模組,用於搭建HTTP服務端和客戶端。
建立Web伺服器
server.js
/** * node-http 服務端 */ let http = require('http'); let url = require('url'); let fs = require('fs'); // 建立伺服器 let server = http.createServer((req, res) => { // 解析請求 let pathname = url.parse(req.url).pathname; // 形如`/index.html` console.log('收到對檔案 ' + pathname + '的請求'); // 讀取檔案內容 fs.readFile(pathname.substr(1), (err, data) => { if (err) { console.log('檔案讀取失敗:' + err); // 設定404響應 res.writeHead(404, { 'Content-Type': 'text/html' }); } else { // 狀態碼:200 res.writeHead(200, { 'Content-Type': 'text/html' }); // 響應檔案內容 res.write(data.toString()); } // 傳送響應 res.end(); }); }); server.listen(8081); console.log('服務執行在:http://localhost:8081,請訪問:http://localhost:8081/index.html');
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Node http</title>
</head>
<body>
<h1>Hi~</h1>
</body>
</html>
執行server.js
,開啟瀏覽器訪問。
建立客戶端
- client.js
/** * node http 建立客戶端 */ let http = require('http'); // 請求選項 let options = { host: 'localhost', port: '8081', path: '/index.html' }; // 處理響應的回撥函式 let callback = (res) => { // 不斷更新資料 let body = ''; res.on('data', (data) => { body += data; }); res.on('end', () => { console.log('資料接收完成'); console.log(body); }); } // 向服務端傳送請求 let req = http.request(options, callback); req.end();
執行server.js
,再執行client.js
。