知道我把它整个包装在一个大的if else语句中,因为我有多个res.render函数. 我该怎么做这样的事情,这应该阻止执行其余的路线: if(req.params.url === undefined){ res.render('layout'); return;} 要么:
我该怎么做这样的事情,这应该阻止执行其余的路线:
if(req.params.url === undefined){ res.render('layout'); return; }
要么:
if(req.params.url === undefined){ res.render('layout'); next(); }
但是两者都执行其下面的其余代码,这会导致Headers已经发送.
现在我的代码看起来像这样:
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.这应该可以防止当前函数的其余部分执行.
一个简单的AJAX示例(我知道它的客户端,但它是一个异步函数,应该表现相似):
$.ajax({ url: 'www.google.com', type: 'POST', error: function () { console.log('failure'); return 0; console.log('after return'); } })
如果您尝试在浏览器控制台中执行此操作,则会记录“失败”日志,但它会在“返回后”消息之前停止.