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); });
上面的示例仅帮助理解,实际应用中不会如此简单。