我正在使用Node.js,我想查看已发布到我的脚本的所有参数。为了实现我的功能,在routes/index.js
我正在做的事情:
app.post('/v1/order', order.create);
然后在我的功能中,我有:
exports.create = function(req, res, next) {
console.log( req.params );
但是它返回一个空数组。但是当我这样做时:
exports.create = function(req, res, next) {
console.log( req.param('account_id') );
我得到数据。所以我对这里发生的事情感到有些困惑。
答案 0 :(得分:29)
req.params只包含路由参数,而不是查询字符串参数(来自GET)而不是正文参数(来自POST)。然而,param()函数检查所有三个,参见:
答案 1 :(得分:23)
<强> here 强>
只能以这种模式获取请求网址的参数:/user/:name
<强> req.params 强>
获取查询参数(名称),如/user?name=123
或身体参数。
答案 2 :(得分:2)
我遇到了类似的问题,并且出于同样的原因,我想为那些来这里的人发布解决方案。我的req.params作为空对象出现,因为我在父路由中声明了URL变量。解决方案是将此选项添加到路由器:
const router = express.Router({ mergeParams: true });