获取 GET 请求内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| var http = require("http") var url = require("url") var util = require("util")
http .createServer(function (req, res) { res.writeHead(200, { "Content-Type": "text/plain" })
var params = url.parse(req.url, true).query res.write("网站名:" + params.name) res.write("\n") res.write("网站 URL:" + params.url) res.end() }) .listen(3000)
|
获取 POST 请求内容
POST 请求的内容全部的都在请求体中,http.ServerRequest 并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作。
比如上传文件,而很多时候我们可能并不需要理会请求体的内容,恶意的 POST 请求会大大消耗服务器的资源,所以 node.js 默认是不会解析请求体的,当你需要的时候,需要手动来做。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| 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"><br>' + '<input type="submit">' + "</form>" + "</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)
|