Javascript NodeJS:在多个模块中引用相同的变量
在node中,我正在创建一个模块的实例,该模块通过WebSocket连接到slack。我使用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(
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传递给模块函数是最好的方法吗?”是。有很多方法可以让它成为全球性的,但它们不是好的风格。