如何在Node模块之间共享数组状态
How to share an array state between modules in Node?
我正在尝试用Node和Socket.io构建一个简单的游戏。我保存了一个连接的玩家数组。
连接时我添加一个播放器,断开时我删除它。很简单。我把所有的套接字事件都放在主文件中,如果需要,任何套接字事件都可以访问数组。
当我想从文件中删除套接字事件并将它们放在单独的模块中时,问题就产生了。
我想我会简单地传递connectedPlayers到模块,像这样:
require('./app_modules/socket-messages.js')(io, db, _, connectedPlayers);
但是它不起作用,模块是被兑现的,它不会共享数组的状态。如果我没理解错的话。
我读到不使用全局变量。
我怎么能保持连接的球员和模块之间共享它的状态数组?
我是Node新手,但也许我能帮上忙。
你可能想看看module.exports
在节点文档。
你可以选择你想要导出的内容,它可以是一个函数或只是一个变量,也许在这种情况下,我们会说你只想返回你的connectedPlayers数组它在一个名为currentPlayers.js
的文件中。
在currentPlayers.js
我将数组导出:
var connectPlayers = ["Ray", "Jason", "Kingtak", "Derek", "Tyler"];
//some code then somewhere appropriate
module.exports = connectedPlayers;
然后在需要信息的地方添加
var ConnectedPlayers = require('./path/to/file/currentPlayers');
相关文章:
- 如何在映射数组中添加换行符
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- KnockoutJs - 共享可观察数组以提供更多选择
- 如何在服务中定义数组并在 AngularJS 中的 2 个控制器之间共享它
- 我怎样才能在这个共享原型中拥有单独的数组
- 如果对象使用 reduce、forEach 或筛选器共享属性值,则合并 JSON 数组中的对象
- 在AngularJS应用程序中本地持久化数组数据,以便在两个应用程序之间共享
- 如何在angularjs中的两个应用程序之间共享数组
- node.js中类实例之间的共享数组
- 在多个nashorn脚本引擎之间共享JavaScript数组和对象
- 如何从共享工厂绑定数组或对象
- 为什么这种javascript继承会导致引用共享数组
- 无论索引如何,检查数组是否包含共享元素
- 如何从一个共享属性的jQuery集合中获取一个属性数组
- 合并至少共享一个公共值的数组
- Javascript:如何将对象的JSON数组返回到对象类型共享原型中
- 在 JavaScript 和 ActionScript 之间共享数组引用
- 继承的子对象在JavaScript中共享相同的数组属性
- 如何在Node模块之间共享数组状态