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实际上是不起作用的,并且会导致“未定义”,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请求?
发布于 2015-08-02 22:13:08
经过一次又一次的尝试,我找到了它:
post请求可能不是多部分编码的-因此,如果设置了enctype=" multipart /form-data“,请删除它或将其更改为"application/x-www-form-urlencoded”。
在删除了enctype之后,我尝试使用
var result = req.body.name它起作用了。
对于多部分编码的帖子,我想你必须使用"multer“!
编辑
我刚发现
req.params.name仅用于urls部分,例如
http://host:port/application/name
文档清楚地表明,在express 4.x中,您必须使用“使用多部分处理的中间件,如busboy、multer、formidable、多方、连接多方或pez。”(http://expressjs.com/api.html#router.route)
https://stackoverflow.com/questions/31771816
复制相似问题