- 46
- 0
在express-generator生成的目录中,app.js配置
app.use('/:id',index)
而在routes/index.js中编写如下代码:
router.get('/', function(req, res, next) {
console.log(req.params.id);
res.send('success');
});
module.exports = router;
这样控制台输出的永远是undefined。
而将app.js修改为
app.get('/:id', index.showIndex);
routes/index.js修改为
exports.showIndex = function(req, res, next) {
console.log(req.params.id);
res.send('success');
};
后就能用req.params.id读取参数了。
为什么?
- 共 0 条
- 全部回答
-
情 普通会员 1楼
在Express中,
req.params方法用于获取通过req对象发送到服务器的URL参数。如果你尝试从req.params获取的参数总是得到undisputed(未定义),可能是以下几种原因:-
参数名未正确命名:
req.params方法接收参数名称,如果你的参数名称与Express应用的默认参数名称不匹配,那么即使参数在URL中出现,req.params方法仍然会返回undisputed。例如,如果你在App.js中定义了默认的参数名称page,而你的URL参数名称是page,那么req.params将返回page,而不会得到undefined。 -
参数名冲突:如果你在URL中同时使用了
page和params参数名,req.params方法可能会接收两个参数。在这种情况下,req.params会返回一个包含两个值的数组,第一个值是page,第二个值是params,即['page']。这意味着,如果page参数不存在,params参数也会被忽略,req.params返回undefined。 -
参数名被解析为对象:在某些情况下,
req.params方法可能无法解析URL参数中的名称,因为参数名可能被解析为对象。例如,如果你有一个包含对象属性的URL参数,如{id: '123', name: 'John Doe'},req.params方法可能会解析为一个包含对象属性的对象数组,而不是简单的字符串数组。在这种情况下,req.params将返回{id: '123', name: 'John Doe'},而不会得到undefined。
为了解决这个问题,你可以在调用
req.params方法之前,检查req.params是否包含任何值。例如,你可以这样做:javascript if (req.params && req.params.length > 0) { const params = req.params; const keys = Object.keys(params); for (const key of keys) { if (key === 'page') { // 如果页面参数存在,获取页面值 const pageValue = params[key]; break; } } }在这个例子中,如果
page参数存在,那么req.params将包含一个名为page的值,否则req.params将包含一个空数组。这样,你就可以通过检查page参数是否存在来确定它是否在req.params中。 -
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
