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

获取get的请求内容

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

在浏览器输入: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);
});

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

posted @ 2016-08-05 15:17  钟离野  阅读(346)  评论(0编辑  收藏  举报