Node.js 如何在SailsJS中使用类变量?
在我的sailsJS项目中,我使用一个API作为API包装器来与外部API通信 例如,我希望有一个init函数并传递参数,如baseUrl、apiKey,然后调用sendRequest(端点) 然而,今天我发现服务不能实例化,而是可以在全球范围内使用。因为SailsJS是异步工作的,所以每次都会覆盖变量 简而言之,我的问题是:使用带有类变量的“类”的正确方法是什么?在这种情况下,我可以有多个实例,就像我从PHP世界知道的那样 首先,我想用一个包含基本数据(如baseUrl和apiKey)的项目来实例化我的API包装器Node.js 如何在SailsJS中使用类变量?,node.js,sails.js,Node.js,Sails.js,在我的sailsJS项目中,我使用一个API作为API包装器来与外部API通信 例如,我希望有一个init函数并传递参数,如baseUrl、apiKey,然后调用sendRequest(端点) 然而,今天我发现服务不能实例化,而是可以在全球范围内使用。因为SailsJS是异步工作的,所以每次都会覆盖变量 简而言之,我的问题是:使用带有类变量的“类”的正确方法是什么?在这种情况下,我可以有多个实例,就像我从PHP世界知道的那样 首先,我想用一个包含基本数据(如baseUrl和apiKey)的项目来
const ApiService = ServiceBase.getApiService(project);
ApiService.getEndpoint(endpoint).then(async(response) => {
// handle response
}
函数获取服务。
这里我尝试设置项目变量
getApiService: (project) => {
this.setConfigParam('apiKey', project.api_key);
this.setConfigParam('baseUrl', project.url);
return ShopApiService;
}
函数getEndpoint(获取请求的快捷方式)
authorizeRequest(为以下请求设置accessToken)
我的问题是,异步调用会覆盖诸如accessToken或baseUrl之类的变量,因此,如果获取访问令牌的请求完成,则可能是针对不同的请求。请提供一些您想要实现的代码,也许有人可以尝试帮助您?我的建议。。。尝试使用adonis.js()而不是sails。您将能够重用一些您曾经使用过的php逻辑,因为它是作为Laravel克隆构建的。帆船不是“阶级友好型”的,它有自己的特殊方式things@LuizCarraro我原以为这是一个基本概念的问题,但我分享了一些代码,这样你就可以更好地想象我要归档的内容。非常感谢。
getEndpoint: async function(endpoint) {
if (ShopApiService.isTokenExpired()) {
await this.authorizeRequest();
}
return this.sendRequest(endpoint);
}
authorizeRequest: async function() {
let response = await this.postRequest('auth/login', {apiKey: module.exports.config.apiKey});
if (response && response.statusCode == 200) {
module.exports.token.updated_at = Date.now();
module.exports.config.accessToken = response.body.accessToken;
return true;
}
return false;
}