我想创建一个带socket.io
参数的模块,所以我的模块类中会有一个全局设置变量。
我的问题是如何做到这一点并仍然访问该模型类中的函数?
在术语中我会想要你可以用socket.io
lib做什么,
这是你在主app类中定义socket.io
lib的方法,你可以看到你需要传递一个server
参数,你可以使用对象的功能。
const io = require('socket.io')(server);
这也是我想传递给我的模型的确切对象。
答案 0 :(得分:0)
模型文件:
var storedObject
module.exports = (myObject) => {
if(myObject){
// set object only if provided
// this way you will be able to init once and use everywhere this model
storedObject = myObject
}
return {
getA: getA
}
}
function getA(){
return storedObject.a
}
用法示例:
var obj = {a: 1, b: 2} // can also be a socket.io or any other object
var model= require('./model.js')(obj) // call with object only on initialization
console.log(model.getA())