const fs = require('fs');const qs = require('querystring');require('http').createServer(function (req,res) { if (req.url === '/'){ res.writeHead(200,{'content-type':'text/html'}); res.end(['<form method="post" action="/url">', '<input type="text" name="name">', '<input type="submit">', '<button>Submit</button>', // '</form>'].join('')) } else if ('/url' === req.url && req.method==='POST') { res.writeHead(200,{'content-type':'text/plain'}); var body = ''; req.on('data',function (chunk) { body += chunk; }); console.log(body) //无输出 res.end('hello world' +qs.parse(body).name +' end')//输出undefined }}).listen(3000);为什么在表单中输入数据后提交 无法被node获得,body变量无内容??
2 回答
jeck猫
TA贡献1909条经验 获得超7个赞
只有req可读流处理完之后才能响应,此时会触发end事件,所以else if逻辑不对,修改后的如下。
else if ('/url' === req.url && req.method==='POST') {
res.writeHead(200,{'content-type':'text/plain'});
var body = '';
req.on('data',function (chunk) {
body += chunk;
});
req.on('end',function(){
res.end('hello world' +qs.parse(body).name +' end')
})
}
皈依舞
TA贡献1851条经验 获得超3个赞
你log输出的时机不对
req.on('data',function (chunk) {
body += chunk;
console.log(body);
});
添加回答
举报
0/150
提交
取消