在控制器中调用函数本身 sails js
calling a function itself in a controller sails js
我知道以前有人问过同样的问题,但之前的问题是用不同的语言和不同的框架,我尝试了之前问题答案中提到的所有方法,但没有成功。
又来了。
我的 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);
}
},
};
现在,如果有过期的凭据,它会更新凭据,我希望它自己重复,这样它就可以 return 在凭据过期的情况下做出正确的响应。我不想为此发送另一个请求。
我的建议是创建一个具有您从控制器中调用的 order_history 逻辑的助手。如果失败,你可以做update_credentials,然后再调用。我这样说是因为 sails 的构建理念是控制器的目的是成为对特定请求端点的特定响应,而不意味着是可重用代码。这就是 helper 的用武之地,它的目的是成为一个全局可用的函数。这样做的好处是,您不会因为需要更新凭据、调用自身、再次因该原因再次失败、更新凭据、调用自身之外的原因导致订单历史失败。 . 你可以让它尝试更新凭据,然后如果它再次失败,则返回一条错误消息。
我知道以前有人问过同样的问题,但之前的问题是用不同的语言和不同的框架,我尝试了之前问题答案中提到的所有方法,但没有成功。
又来了。
我的 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);
}
},
};
现在,如果有过期的凭据,它会更新凭据,我希望它自己重复,这样它就可以 return 在凭据过期的情况下做出正确的响应。我不想为此发送另一个请求。
我的建议是创建一个具有您从控制器中调用的 order_history 逻辑的助手。如果失败,你可以做update_credentials,然后再调用。我这样说是因为 sails 的构建理念是控制器的目的是成为对特定请求端点的特定响应,而不意味着是可重用代码。这就是 helper 的用武之地,它的目的是成为一个全局可用的函数。这样做的好处是,您不会因为需要更新凭据、调用自身、再次因该原因再次失败、更新凭据、调用自身之外的原因导致订单历史失败。 . 你可以让它尝试更新凭据,然后如果它再次失败,则返回一条错误消息。