Node.js 双重路由问题
Node.js double routing issue
我有两条路线被相同的 url 击中:
http://localhost:3000/admin/venues/edit/1234
我希望这个 url 只会触发路线 2。为什么它也会触发路线 1?
路线#1:
app.get('/:locality/:category/:venue', require('../views/details/index').index);
路线 #2:
app.get('/admin/venues/edit/:slug', require('../views/admin/index').index))
我想第二条路线无法理解它不应该在第一个参数 'admin' 上触发。您能否使用 RegExp 模式指定路由 #1 中的第一个参数应忽略某些单词,例如 'admin'?
由于路由 1 位于路由 2 之前,节点会认为 "admin" 是您要分配给 :locality 参数的值。切换路线的顺序,一切都应该没问题。根据经验,将带有参数的路由放在路由列表的末尾。路线的顺序很重要。
我有两条路线被相同的 url 击中: http://localhost:3000/admin/venues/edit/1234
我希望这个 url 只会触发路线 2。为什么它也会触发路线 1?
路线#1:
app.get('/:locality/:category/:venue', require('../views/details/index').index);
路线 #2:
app.get('/admin/venues/edit/:slug', require('../views/admin/index').index))
我想第二条路线无法理解它不应该在第一个参数 'admin' 上触发。您能否使用 RegExp 模式指定路由 #1 中的第一个参数应忽略某些单词,例如 'admin'?
由于路由 1 位于路由 2 之前,节点会认为 "admin" 是您要分配给 :locality 参数的值。切换路线的顺序,一切都应该没问题。根据经验,将带有参数的路由放在路由列表的末尾。路线的顺序很重要。