Node.js 为什么req.params返回空数组?

Node.js 为什么req.params返回空数组?,node.js,express,Node.js,Express,我正在使用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

我正在使用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') );

我得到数据。所以我对这里发生的事情有点困惑。

req.params只包含路由参数,而不包含查询字符串参数(来自GET)和body参数(来自POST)。但是,param()函数会检查所有三个参数,请参见:


只能在此模式中获取请求url的参数:
/user/:name



获取查询参数(名称),如
/user?name=123
或body参数。

我遇到了类似的问题,我想我应该为那些出于同样原因来到这里的人发布解决方案。我的req.params显示为空对象,因为我在父路由中声明了URL变量。解决方案是将此选项添加到路由器:

const router = express.Router({ mergeParams: true });

请注意,
req.param()
是。非常感谢!救世主!