標籤:lan 資料 網站名 response callback received param ons node
擷取GET請求內容
node.js 中 url 模組中的 parse 函數提供了這個功能。
var http = require(‘http‘);var url = require(‘url‘);var util = require(‘util‘); http.createServer(function(req, res){ res.writeHead(200, {‘Content-Type‘: ‘text/plain; charset=utf-8‘}); res.end(util.inspect(url.parse(req.url, true)));}).listen(3000);
擷取 URL 的參數
var http = require(‘http‘);var url = require(‘url‘);var util = require(‘util‘); http.createServer(function(req, res){ res.writeHead(200, {‘Content-Type‘: ‘text/plain‘}); // 解析 url 參數 var params = url.parse(req.url, true).query; res.write("網站名:" + params.name); res.write("\n"); res.write("網站 URL:" + params.url); res.end(); }).listen(3000);
擷取 POST 請求內容
var http = require(‘http‘);var querystring = require(‘querystring‘); var postHTML = ‘<html><head><meta charset="utf-8"><title>菜鳥教程 Node.js 執行個體</title></head>‘ + ‘<body>‘ + ‘<form method="post">‘ + ‘網站名: <input name="name"><br>‘ + ‘網站 URL: <input name="url"><br>‘ + ‘<input type="submit">‘ + ‘</form>‘ + ‘</body></html>‘; http.createServer(function (req, res) { var body = ""; req.on(‘data‘, function (chunk) { body += chunk; }); req.on(‘end‘, function () { // 解析參數 body = querystring.parse(body); // 設定回應標頭部資訊及編碼 res.writeHead(200, {‘Content-Type‘: ‘text/html; charset=utf8‘}); if(body.name && body.url) { // 輸出提交的資料 res.write("網站名:" + body.name); res.write("<br>"); res.write("網站 URL:" + body.url); } else { // 輸出表單 res.write(postHTML); } res.end(); });}).listen(3000);
使用 Node 建立 Web 服務器(服務端建立伺服器,解析請求,讀取檔案內容,發送響應資料(回應標頭部、響應內容))
建立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.html
<html><head><title>Sample Page</title></head><body>Hello World!</body></html>
進入http://127.0.0.1:8081/index.html後
使用 Node 建立 網頁用戶端(向服務端請求,請求的選項,不斷更新資料,資料接收完成)
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();
運行後得到結果
【node.js】GET/POST請求、Web 模組