私はいくつかのモジュールを持つ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