我是新手寻找解决方案如何通过引用在文件(模块)之间共享变量。一个例子我这里是app.jsjavascript node.js模块间变量共享
const users = {},
waitingQueue = []
module.exports = function(io){
io.on('connection', (socket)=>{
users[socket.id] = socket
socket.on("Search", (d, ack)=>{
waitingQueue.push(socket)
// logic with waitingQueue
// logic with users {}
})
socket.on("otherEvent", (d, ack)=>{
// logic with waitingQueue
// logic with users {}
})
})
}
现在我想将其划分modulewise。现在新的app.js
const users = {},
waitingQueue = []
const Search = require('./search')
module.exports = function(io){
io.on('connection', (socket)=>{
users[socket.id] = socket
socket.on("Search", Search(users, waitingQueue))
})
}
现在
在differenct情况下,我的麻烦
socket.on( “搜索”,...)
...应该是一个funtion
现在如果使用罩壳
所以cket.on( “搜索”,()=> ...)
出口修改{用户,waitingQueue}形式Search.js是确定的,但需要覆盖用户& waitingQueue可变因素而无法正常工作。 我需要将这些变量与其他模块紧密耦合在一起。
我也尝试基于事件发射器的方法Object.observe()但无法修复问题。 有人帮我请来解决这个问题
完美的答案感谢@詹姆斯 – shivshankar