微信订阅号:Rabbit_svip
post
和 get
最大的区别是 post
不在url里传值。
所以后台处理 post
传过来的值,需要用另一种方法。
post
是通过事件的方式来接收客户端发过来的请求。
post
有两个事件是比较常用的。
- req.on('data') : 每次发送的数据
- req.on('end') : 数据发送完成
前端代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="http://localhost:8100">
<input type="text" name="userName">
<input type="password" name="userPwd">
<input type="submit" value="登录">
</form>
</body>
</html>
前端代码和 get
那个例子差不多,只是把 get
改成 post
。
后端代码
const http = require('http');
const server = http.createServer((req, res) => {
let postVal = "";
// chunk 代表每次接收到的数据
req.on("data", (chunk) => {
postVal += chunk;
})
req.on("end", () => {
console.log(postVal);
res.end();
})
})
server.listen(8100);
在浏览器输入 admin 和 123123
后端得到以下数据
微信订阅号:Rabbit_svip
是字符串格式的。
如果需要转成json格式,可以通过 querystring
这个系统提供的模块。
querystring模块
const http = require('http');
const querystring = require('querystring');
const server = http.createServer((req, res) => {
let postVal = "";
// chunk 代表每次接收到的数据
req.on("data", (chunk) => {
postVal += chunk;
})
req.on("end", () => {
console.log( querystring.parse(postVal) );
res.end();
})
})
server.listen(8100);
最后在浏览器重新提交以下。
后台得到的结果:
微信订阅号:Rabbit_svip