重要:GET和POST请求他们都是上行请求,都是把数据从浏览器带向服务器的方式,
GET 请求实际上就是识别URL中的querystring部分
POST请求,一般用来发送大量的内容,此时node非常害怕大内容,因为如果你上传的时候传1G的内容,此时你会把进程阻塞,这时node很聪明,它会把浏览器传来的大内容分成一个个包来进行传输
GET请求:
var http = require("http"); var url = require("url"); var querystring = require("querystring"); var server = http.createServer((req,res)=>{ var query1 = url.parse(req.url).query; //产生结果是字符串,加上true,就是json var query1 = url.parse(req.url,true).query; var obj = querystring.parse(query1); //第二种方式,效率不高。没有第一种方便 console.log(obj); }); server.listen(3800,"192.168.3.55");
POST请求:
HTML:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表单</title> </head> <body> <form action="http://127.0.0.1:3800" method="post"> <p> <input type="text" name="name" placeholder="请输入用户名" /> </p> <p> <input type="text" name="age" placeholder="请输入年龄" /> </p> <p> <input type="radio" name="sex" value="男" />男 <input type="radio" name="sex" value="女" />女 </p> <p> <input type="submit" value="提交" /> </p> </form> </body> </html>
js:
var http = require("http"); var url = require("url"); var server = http.createServer((req,res)=>{ var result = ""; //面对post提交,node.js用监听的写法处理 req.on("data",function (chunk) { //data 是一个事件,表示一个小包传输完毕做的事情, console.log("小包传输完毕"); result += chunk; }); req.on("end",function () { //所有的包都传输完毕 console.log(result.toString()); }) }); server.listen(3800,"127.0.0.1");