NodeJS: ссылка на одну и ту же переменную в нескольких модулях

В node я создаю экземпляр модуля, который подключается через websockets к slack. Я делаю это с const slackbot = new SlackBot(). Как настроить так, чтобы я мог ссылаться на одно и то же slackbotв нескольких различных модулях? Является ли лучшим способом просто перейти slackbotк функциям модуля каждый раз, когда я хочу вызвать его в этом модуле?

const slackbot = new SlackBot();

someModule.doThing(data, slackbot)
.then((response) => {
  otherModule.doAnotherThing(response, slackbot);
})
.then((response) => {
  someModule.wrapUp(response, slackbot);
});

1 ответ

  1. Один из способов сделать это

    /** slacbot.js */
    const slackbot = new SlackBot();
    
    someModule.doThing(data, slackbot)
    .then((response) => {
      otherModule.doAnotherThing(response, slackbot);
    })
    .then((response) => {
      someModule.wrapUp(response, slackbot);
    });
    
    // getter    
    var getSlackBot = function(){
      if(slackBot) return slackBot
      else {
        slackbot = new SlackBot();
        return slackbot;
      }
    }
    
    module.exports.getSlackBot = getSlackBot;
    
    
    /** consumer.js **/
    var slackBot = require('slackBot').getSlackBot();