Express 中的嵌套路由,其中​​父路由包含参数

2023-11-22

定义路由层次结构的最佳方法是什么,以便我有一个基本 URL/page/:id,然后是像这样的网址/page/:id/delete and /page/:id/edit,而不必在所有路径中重复 /page/:id 位?

我已经尝试过以下方法,但是id参数在子路由中不可用:

pageActions = express.Router!

pageActions.get "/delete", (request, response) ->
    request.params.id #undefined

app.use "/page/:id", pageActions

我在路由指南中看不到任何提及此行为的信息,但似乎在此处提供所有可用参数会很有用,特别是因为允许在路由的“安装路径”中包含参数。


我相信您可能会对两件事感到困惑。

首先,你不应该使用get删除函数的方法。相反,您应该使用delete方法。这是映射到请求中发送的内容的两个 HTTP 快捷方法。This显示了 ExpressJS 支持的快捷方式的完整列表,这些都可以被路由器使用。

其次,如果您使用的是ExpressJS 路由器并且您想要保留安装路由器的路径中的参数,您需要让 ExpressJS 知道,使用mergeParams option:

var router = express.Router({mergeParams: true});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Express 中的嵌套路由,其中​​父路由包含参数 的相关文章

随机推荐