我正在使用多个模块开展NodeJS中的家庭自动化项目。这些模块需要访问中心DeviceManager
内的数据设备。通常我会为此创建一个单例,以便所有模块都可以访问DeviceManager
的相同状态。在NodeJS中的模块之间共享数据
要创建一个单独使用:
class DevicesManagerInstance {
constructor() {
this.devices = {};
}
addDevice(id, device) {
this.devices.id = device;
}
}
let DevicesManagerInstance = new DevicesManager();
module.exports = DevicesManagerInstance;
我发现一些老问题,关于单身,并回答共享数据,但仍不满足,如果它是共享数据删除方式的NodeJS的问题:
- https://derickbailey.com/2016/03/09/creating-a-true-singleton-in-node-js-with-es6-symbols/
- Singleton pattern in nodejs - is it needed?
- NodeJS: Sharing Application State Between Modules
但也读单身人士是一种反模式。有人可以澄清什么是在模块之间共享数据的“NodeJS”方式(在我的情况下是设备)。在Angular中,我将为此创建一项服务。
DevicesManager是否与其他一切相同? – sparrow
是的,事情是,我有很多模块都需要访问相同的设备数据。 –
那么你有什么是完全好的!祝你好运:) – sparrow