Node.js 如何在SailsJS中使用类变量?

Node.js 如何在SailsJS中使用类变量?,node.js,sails.js,Node.js,Sails.js,在我的sailsJS项目中,我使用一个API作为API包装器来与外部API通信 例如,我希望有一个init函数并传递参数,如baseUrl、apiKey,然后调用sendRequest(端点) 然而,今天我发现服务不能实例化,而是可以在全球范围内使用。因为SailsJS是异步工作的,所以每次都会覆盖变量 简而言之,我的问题是:使用带有类变量的“类”的正确方法是什么?在这种情况下,我可以有多个实例,就像我从PHP世界知道的那样 首先,我想用一个包含基本数据(如baseUrl和apiKey)的项目来

在我的sailsJS项目中,我使用一个API作为API包装器来与外部API通信

例如,我希望有一个init函数并传递参数,如baseUrl、apiKey,然后调用sendRequest(端点)

然而,今天我发现服务不能实例化,而是可以在全球范围内使用。因为SailsJS是异步工作的,所以每次都会覆盖变量

简而言之,我的问题是:使用带有类变量的“类”的正确方法是什么?在这种情况下,我可以有多个实例,就像我从PHP世界知道的那样

首先,我想用一个包含基本数据(如baseUrl和apiKey)的项目来实例化我的API包装器

       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;

  }