我知道之前也曾问过同样的问题,但是以前的问题是用不同的语言和不同的框架来进行的,我尝试了前面问题的答案中提到的所有方法,但没有发现运气。
所以又来了。
我的Sails js应用程序中有一个名为orderController
的控制器
代码是:
module.exports = {
order_history: async function(req, res){
//get a response from an API and it is saved in nData
if(nData.status_code == 0 && nData.result == 'succeed'){
res.ok(nData.data);
}else{
updateCredentials();
order_history(req, res);
}
},
};
现在,如果有过期的凭据,那么它将更新凭据,并且我希望它重复自身,以便在凭据过期的情况下可以返回正确的响应。我不希望为此发送另一个请求。
答案 0 :(得分:1)
我的建议是使用您从控制器内调用的order_history逻辑创建一个帮助器。如果失败,则可以执行update_credentials,然后再次调用它。我之所以这样说,是因为Sails是基于以下思想构建的:控制器的目的是对特定请求端点的特定响应,而不是可重用的代码。那就是帮助程序出现的地方,目的是成为一个全球可用的功能。这样做的好处是,您不会遇到订单历史记录由于某种原因而失败的情况,而该原因不是需要更新凭证,调用自身,又由于该原因再次失败,更新凭证,调用自身。您可以尝试更新凭据,如果再次失败,则返回错误消息。