Node.js 为什么req.params返回空数组?
我正在使用Node.js,我想查看已发布到脚本中的所有参数。要使用我的函数,在我的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
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()
是。非常感谢!救世主!