我有以下路线:
app.get('/blah/query.json', doSomething);
app.get('/blah/:id.:format', doSomethingElse);
目前两个路由都在继续,因此调用路由一(query.json),然后调用路由二(:id。:format)。如果调用路由1,如何排除对路由2的调用。我试过这样的事情:
app.get('/blah^\/(?!query)(:id.:format)$', doSomethingElse);
但是,这个以及其中的一些变体似乎并不起作用。我找到了一篇引用快递代码here的帖子。即使查看此代码并尝试不同的事情,我仍然无法使“If not query”表达式工作。
有什么想法吗?
答案 0 :(得分:0)
如果您设置如下信号量,该怎么办?:
var sempahore_execute_second = true;
app.get('/blah/query.json', function(req,res,next){
sempahore_execute_second = false;
});
app.get('/blah/:id.:format', function(req,res,next){
if (sempahore_execute_second) {
// Execute code here.
};
}));
// or better:
app.get('/blah/:id.:format', function(req,res,next){
if (sempahore_execute_second) return next();
// Execute code here.
}));
我知道有点乱,你应该期待另一个解决方案,但也许这可以帮助你。