在控制器中调用一个函数sails js

我知道之前已经问过同样的问题,但之前的问题是用不同的语言和不同的框架,我尝试了前面问题中提到的所有方法,但没有找到运气 .

所以这里又来了 .

我的sails js app中有一个名为 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);
        }
    },

};

现在,如果有过期的凭据,那么它会更新凭据,我希望它重复自己,以便在过期凭据的情况下返回正确的响应 . 我不希望为此发送另一个请求 .

回答(1)

2 years ago

我的建议是创建一个帮助器,其中包含您在控制器内调用的order_history的逻辑 . 如果失败,您可以执行update_credentials,然后再次调用它 . 我这样说是因为sails的构建是为了控制器的目的是对特定请求 endpoints 的特定响应,而不是重复使用的代码 . 这就是助手进来的地方,它的目的是成为一个全球可用的功能 . 这样做的好处是,您不会因为除了需要更新凭证,调用本身,再次失败,更新凭证,调用自身之外的原因导致订单历史失败的情况 . 您可以让它尝试更新凭据,然后如果再次失败则再次响应错误消息 .