server.jshtml
/* 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))); //解析 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);*/ /* var http = require("http"); var querystring = require("querystring"); http.createServer(function(req, res){ //定義了一個post變量,用於暫存請求體的信息 var post = ""; //經過req的data事件監聽函數,每當接收到請求體的數據,就累加到post變量中 req.on("data", function(chunk){ post += chunk; }); //在end事件觸發後,經過querystring.parse將post解析爲真正的POST請求格式,而後向客戶端返回 req.on("end", function(){ post = querystring.parse(post); res.end(util.inspect(post)); }); }).listen(3000);*/ /* 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">' + '<input type="submit">' + '</form> ' + '</body>' '</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); */ 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 狀態碼: 300 : 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://localhost:8081");
client.js服務器
var http = require("http"); //用於請求的選項 var options={ host : "localhost", port : "8081", path : "/index.html" }; // 處理響應的回調函數 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();