Node.js express中的嵌套管线,其中父管线包含参数
定义路由层次结构的最佳方法是什么,这样我就可以有一个基本URLNode.js express中的嵌套管线,其中父管线包含参数,node.js,express,url-routing,Node.js,Express,Url Routing,定义路由层次结构的最佳方法是什么,这样我就可以有一个基本URL/page/:id,然后是像/page/:id/delete和/page/:id/edit,而不必在所有路径中重复/page/:id位 我尝试了以下操作,但子路由中没有idparam: pageActions = express.Router! pageActions.get "/delete", (request, response) -> request.params.id #undefined app.use
/page/:id
,然后是像/page/:id/delete
和/page/:id/edit
,而不必在所有路径中重复/page/:id位
我尝试了以下操作,但子路由中没有id
param:
pageActions = express.Router!
pageActions.get "/delete", (request, response) ->
request.params.id #undefined
app.use "/page/:id", pageActions
在路由指南中,我看不到任何关于此行为的提及,但在此处提供所有参数似乎很有用,特别是因为允许在路由的“装载路径”中使用参数。有两件事我相信您可能会感到困惑 首先,您不应该使用delete函数的方法。相反,您应该使用该方法。这是两个HTTP快捷方式方法,它们映射到请求中发送的内容。显示ExpressJS支持的快捷方式的完整列表,路由器也可以使用这些快捷方式 其次,如果您正在使用,并且希望保留安装路由器路径中的参数,则需要使用
mergeParams
选项让ExpressJS知道:
var router = express.Router({mergeParams: true});
使用路由器的mergeParams选项从父级继承路由参数:谢谢,刚刚找到mergeParams。我知道删除,只是不想在这种情况下乱搞表单或XHR。为什么你用另一个答案回答自己的问题?哈哈,这个网站太挑剔了。在我看到另一个答案之前,我写了这个。好了,奥卡姆剃须刀和所有的东西。我很高兴你找到了答案,不管你怎么做。这是该网站的重点,但该网站之所以有效,是因为人们愿意花时间帮助别人,除了得到一点赞扬,承认他们的努力和帮助之外,没有任何真正的好处。我不会说这是“吹毛求疵”。