Node.js Nodes.js post参数
1) 为什么当我试图从node.js中的post请求获取参数时 我得到了正确的值Node.js Nodes.js post参数,node.js,http,Node.js,Http,1) 为什么当我试图从node.js中的post请求获取参数时 我得到了正确的值 app.post('/users', function(req, res) { console.log(">>> " + req.param('name')); ' works but with warnings res.send("ok"); }); 上面的示例输出了一条警告,指出此“param”函数已弃用,我应该使用params.name。使用params.name实际上不起作
app.post('/users', function(req, res) {
console.log(">>> " + req.param('name')); ' works but with warnings
res.send("ok");
});
上面的示例输出了一条警告,指出此“param”函数已弃用,我应该使用params.name。使用params.name实际上不起作用,并导致“未定义”,与body.name相同
当我使用
router.post('/',function(req, res, next) {
console.log("result > " + req.params.name); ' result is "undefined"
res.send(req.body);
});
我已经包括了支持json的bodyparser
我是否遗漏了什么,或者我到底做错了什么
2) 此外,有没有一种方法可以在不命名的情况下获取所有参数?这两种方法都适用于get/post请求?在反复尝试后,我发现: post请求可能不是多部分编码的-因此如果 enctype=“多部分/表单数据”已设置,请将其删除或更改为“应用程序/x-www-form-urlencoded” 删除enctype后,我尝试使用
var result = req.body.name
这起作用了
对于多部分编码的帖子,我想你必须使用“multer”
编辑
我刚发现
req.params.name
仅适用于URL部分,例如
文档中明确指出,在Express4.x中,您必须使用
“使用多部分处理中间件,如busboy、multer、Foremble、multiparty、connect multiparty或pez。”()您是否尝试过使用urlencoded的body解析器?i、 e.
app.use(bodyParser.urlencoded({extended:true}))
?是的,我尝试过,可惜没有成功!