我有一个快速的网络应用程序.在应用程序中,我有一个路由,可以对数据库进行多次调用.在每次调用期间,如果它失败,那么我将浏览器重定向到页面/暂时不可用(基本上是一个通用错误页
伪代码的部分内容
app.get('/sign-in/twitter', function(req, res, next){ request({ 'method' : 'GET', // BLAH BLAH BLAH CALL TO DATABASE // DATABASE CALLBACK function (error, response, body){ if (response.statusCode === 200) { // DO GOOD STUFF } else if (response.statusCode === 404) { // DO COOL STUFF } else { temporarilyUnavailable(req, res, next); } // DO MORE STUFF AND SEND A RESPONSE } } }
用于暂时不可用功能的伪代码的部分
res.set({ 'Cache-Control' : 'private, no-cache, no-store, must-revalidate, 'Content-Type' : 'text/plain;charset=utf-8', } res.redirect(302, 'https://' + req.host + '/' + url);
在TEMPORARILY UNAVAILABLE FUNCTION中,res.redirect是否阻止执行下一代码?
不,它不应该.你只是在响应上调用一个函数.它下面的代码可以执行. res.redirect()没有什么神奇之处.
避免这种情况的常见做法是在重定向或以其他方式调用要退出当前函数的回调时返回:
return res.redirect(302, 'https://' + req.host + '/' + url);