由于GET請求直接被嵌入在路徑中,URL是完整的請求路徑,包括了?后面的部分,因此你可以手動決議后面的內容作為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"}); //util.inspect()物件轉字串 //url.parse()將一個完整的URL地址,分為很多部分,常用的有:host、port、pathname、path、query //為true時將使用查詢模塊分析查詢字串,默認為false res.end(util.inspect(url.parse(req.url,true))); }).listen(3000);

在瀏覽器訪問:http://localhost:3000/user?name=cyy&url=www.baidu.com

使用 url.parse 方法來決議 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;charset=utf-8"}); // 決議 url 引數 var params=url.parse(req.url,true).query; res.write(params.name); res.write("\n"); res.write(params.url); res.end(); }).listen(3000);

獲取post請求:
var http=require("http"); var querystring=require("querystring"); var util=require("util"); var postHTML= '<html><head><meta charset="utf-8"><title>post</title></head><body>'+ '<form method="post">'+ '網站名:<input type="text" name="name"><br>'+ '網址<input type="text" name="url"><br>'+ '<input type="submit">'+ '</form></body></html>'; http.createServer(function(req,res){ // 定義了一個post變數,用于暫存請求體的資訊 var post=""; // 通過req的data事件監聽函式,每當接受到請求體的資料,就累加到post變數中 req.on("data",function(truck){ post+=truck; }) // 在end事件觸發后,通過querystring.parse將post決議為真正的POST請求格式,然后向客戶端回傳, req.on("end",function(){ post=querystring.parse(post); //設定回應頭部資訊及編碼 res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"}); //如果存在資料則輸出資料,否則輸出表單 if(post.name && post.url){ res.write("網站名:"+post.name+"<br>"); res.write("網址"+post.url+"<br>"); }else{ res.write(postHTML); } res.end(); }) }).listen(3000);



轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/143013.html
標籤:JavaScript
