node中的get请求和post请求的不同操作【node学习第五篇】

时间:2022-03-09 19:52:52

获取get的请求内容

 /**
* Created by Administrator on 2016/8/5.
*/
var http = require("http");
var url = require("url");
var util = require("util");
function start(req, res){
res.writeHead("200", {"Content-type": "text/plain"});
//url.parse(): url.parse原始的 path 被解析为一个对象
//util.inspect(): 将对象转换为字符串
res.end(util.inspect(url.parse(req.url, true)));
}
var server = http.createServer(start).listen("3000", "127.1.1.1",function(){
var port = server.address().port;
var host = server.address().address;
console.log("%s:%d",host,port);
});

在浏览器输入:http://127.1.1.1:3000/user?name=leeanna&age=23&sex=man

得到结果为:

Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?name=leeanna&age=23&sex=man',
query: { name: 'leeanna', age: '23', sex: 'man' },
pathname: '/user',
path: '/user?name=leeanna&age=23&sex=man',
href: '/user?name=leeanna&age=23&sex=man' }

获取post的请求数据【POST 请求的内容全部都在请求体中】

/**
* Created by Administrator on 2016/8/5.
*/
var http = require("http");
var querystring = require("querystring");
var util = require("util");
function start(req, res){
var post = "";
//当请求体数据到来时,该事件被触发。该事件提供一个参数 chunk,表示接收到的数据
res.on("data", function(chunk){
post += chunk; //请求体可能相对较长,需要一定的时间传输,可能会被调用多次
});
//end :当请求体数据传输完成时,该事件被触发,此后将不会再有数据到来。
res.on("end", function(){
//querystring.parse 将 post 解析为真正的 POST 请求格式
post = querystring.parse(post);
res.end(util.inspect(post));
});
}
var server = http.createServer(start).listen("3001", "127.1.1.1",function(){
var port = server.address().port;
var host = server.address().address;
console.log("%s:%d",host,port);
});

上面的示例仅帮助理解,实际应用中不会如此简单。