Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS:在多个模块中引用相同的变量_Javascript_Node.js_Module - Fatal编程技术网

Javascript NodeJS:在多个模块中引用相同的变量

Javascript NodeJS:在多个模块中引用相同的变量,javascript,node.js,module,Javascript,Node.js,Module,在node中,我正在创建一个模块的实例,该模块通过WebSocket连接到slack。我使用const slackbot=new slackbot()来实现这一点。如何设置,以便在几个不同的模块中引用相同的slackbot?每次我想在模块中调用slackbot时,将其传递给模块函数是不是最好的方法 const slackbot=new slackbot(); someModule.doThing(数据、slackbot) 。然后((响应)=>{ otherModule.dootherthing(

在node中,我正在创建一个模块的实例,该模块通过WebSocket连接到slack。我使用
const slackbot=new slackbot()
来实现这一点。如何设置,以便在几个不同的模块中引用相同的
slackbot
?每次我想在模块中调用slackbot时,将其传递给模块函数是不是最好的方法

const slackbot=new slackbot();
someModule.doThing(数据、slackbot)
。然后((响应)=>{
otherModule.dootherthing(响应,slackbot);
})
。然后((响应)=>{
wrapUp(响应,slackbot);
});
一种方法是

/** 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();

“每次我想在模块内调用slackbot时,将slackbot传递给模块函数是最好的方法吗?”是。有很多方法可以让它成为全球性的,但它们不是好的风格。