知道我将它整个包装在一个大的 if else 语句中,因为我有多个 res.render 函数。
我该如何做这样的事情,这应该会阻止执行其余的路线:
if(req.params.url === undefined){
res.render('layout');
return;
}
Run Code Online (Sandbox Code Playgroud)
或者:
if(req.params.url === undefined){
res.render('layout');
next();
}
Run Code Online (Sandbox Code Playgroud)
但是两者都执行了它们下面的其余代码,这导致 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});
}
}
Run Code Online (Sandbox Code Playgroud)
我不是 100% 确定这一点,但如果你只想在 res.render() 之后退出该函数,我认为你可以使用return. 这应该会阻止当前函数的其余部分执行。
一个简单的 AJAX 示例(我知道它的客户端,但它是一个异步函数,并且行为应该类似):
$.ajax({
url: 'www.google.com',
type: 'POST',
error: function () {
console.log('failure');
return 0;
console.log('after return');
}
})
Run Code Online (Sandbox Code Playgroud)
如果您尝试在浏览器控制台中执行此操作,您将注意到“失败”日志,但它将在“返回后”消息之前停止。
| 归档时间: |
|
| 查看次数: |
4163 次 |
| 最近记录: |