post请求的数据比get大的多,所以post是分段发送请求的
post方式接收数据用 res.on
举个栗子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://localhost:3333/" method="post">
用户名:<input type="text" name="user">
密码:<input type="password" name="pass">
<textarea name="text" id="" cols="30" rows="10"></textarea>
<input type="submit" value="提交">
</form>
</body>
</html>
const http = require("http")
const querystring = require("querystring")
http.createServer(function(req,res){
// post接收数据的方式是用 req.on
// get方式直接 req.url
var str = ''
var i = 0
// data 表示每当有一段数据发送的时候,就触发一次(一共会发生很多次)
req.on('data',function(data){
// console.log(`第${i++}次发送数据`)
str += data
})
// 数据全部到达时,只发生一次
req.on('end',function(){
var post = querystring.parse(str)
console.log(post)
console.log("ok")
})
}).listen(3333)
结果:
{ user: 'LISI', pass: '123', text: '123' }
ok
关于queryString模块
- 作用:将post数据解析成json
网友评论