gpt4 book ai didi

node.js - 跨文件拆分时使用 router.use 表示路由器未定义参数

转载 作者:IT老高 更新时间:2023-10-28 21:58:57 24 4
gpt4 key购买 nike

我不确定这是否是 Express 中的错误,或者我只是做错了什么(可能是后者),但我发现 req.params 仅在最后一步保留参数要求。为了证明我的意思:

工作示例:

router.get('/:id/test', function(req, res){
// req.params.id is not undefined
});

不起作用:(

文件 1:

router.use('/:id', require('./file2'));

文件 2:

router.get('/test', function(req, res){
// req.params.id is undefined?!
});

现在...以上对我来说似乎完全不合逻辑,因为 Express 生成器以上述方式定义了路线 - 而且它仍然必须在某处的路径中定义。当然我应该仍然能够访问“id”吗?

所以基本上,我错过了什么吗?这是故意的/是否记录在案? FWIW 我正在使用 Express v4.12.0。

免责声明:文件的事情可能无关紧要,但安全总比抱歉好。

最佳答案

当你在 File 2 中创建你的 Router 时,你需要告诉它从 parent 那里继承参数。

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

http://expressjs.com/api.html#router

关于node.js - 跨文件拆分时使用 router.use 表示路由器未定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28977253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com