如何在express.js中退出路线?

知道我把它包在一个大的如果else语句,因为我有多个res.render函数。

我怎么能做这样的事情,这应该阻止其余的路线被执行:

if(req.params.url === undefined){ res.render('layout'); return; } 

要么:

 if(req.params.url === undefined){ res.render('layout'); next(); } 

但是,这两个执行下面的代码的其余部分,这导致头文件已经发送。

现在我的代码如下所示:

 exports.activate = function(req, res){ var hash = req.params.hash; if(hash === undefined){ res.render('activation'); next(); } else { // Do stuff with hash res.render('activateOne', {hash: hash}); } } 

我不是100%确定这一点,但如果你只是想res.render()后退出函数,我认为你可以使用return 。 这应该防止执行当前function的其余部分。

一个简单的AJAX示例(我知道它的客户端,但它是一个asynchronous函数,应该performance相似):

 $.ajax({ url: 'www.google.com', type: 'POST', error: function () { console.log('failure'); return 0; console.log('after return'); } }) 

如果您尝试在浏览器控制台中执行此操作,则会logging“失败”日志,但会在“返回后”消息之前停止。