express/node.js-如何将路由参数传递给其他文件? [英] express/node.js - How to pass route parameters to other files?

查看:55
本文介绍了express/node.js-如何将路由参数传递给其他文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

遇到一个奇怪的错误,如果我在route/posts/index.js中定义了这样的路由:

Encountered a strange bug where if I have a route defined like so in routes/posts/index.js:

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

在./edit内部,我定义了端点,如下所示:

Inside ./edit, I have the endpoint defined like so:

router.post('/', passport.authenticate('jwt', { session: false}), function(req, res){

如果我命中/posts/:id/edit,则成功命中了./edit中的端点,但是 const id = req.params.id; 将是未定义的.但是,如果我直接在route/posts/index.js中定义路由,则会定义 req.params.id .

If I hit /posts/:id/edit, I successfully hit the endpoint in ./edit, but const id = req.params.id; will be undefined. However, if I define the route directly in routes/posts/index.js, req.params.id will be defined.

./edit中的路由识别" id参数的正确方法是什么?

What is the correct way for letting the route in ./edit 'recognize' the id parameter?

推荐答案

您可以将 {mergeParams:true} 传递给

You can merge in parent router parameters by passing {mergeParams: true} to express.Router().

这篇关于express/node.js-如何将路由参数传递给其他文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆