【发布时间】:2018-07-20 12:07:58
【问题描述】:
这是一个带有 2 个处理程序的渐进式路由。
app.get('/blog/:year/:quarter/:month?/:day?/:post', routes.views.post);
app.get('/blog/:year/:quarter/:month?/:day?/', routes.views.post_listing);
这里的“月”和“日”是可选的。当没有 post 参数时,路由应该回退到 'post_listing' 处理程序。
非常感谢任何帮助。 提前致谢!
【问题讨论】:
-
你应该把
:post放在你的第一条路由的开头,像这样:app.get('/blog/:post/:year/:quarter/:month?/:day?, routes.views.post);。这对您来说是可以接受的,还是像您在示例中展示的那样? -
@NEXTLEVELSHIT 对不起,我的朋友,那没用。当您使用此方法获得所有 5 个参数时,页面将重定向到 404。在这里,'post' 和 'post_listing' 处理程序命中不同的模型。
-
将条件参数 (
month,day) 放在强制参数 (year,post,quarter) 之间可能会导致对所提供参数的误解。如果你想同时使用你的两个路由,你会遇到一些极端情况,其中post参数可以理解为month或day。你明白我的意思了吗?
标签: node.js express routing routes keystonejs