1. ホーム
  2. node.js

[解決済み】Node.jsで循環的な依存関係に対処する方法

2022-04-13 21:07:58

質問

私は最近nodejsで作業していますが、まだモジュールシステムを理解していないので、これが明白な質問であれば申し訳ありません。私は、おおよそ以下のようなコードが必要です。

a.js (nodeで実行されるメインファイル)

var ClassB = require("./b");

var ClassA = function() {
    this.thing = new ClassB();
    this.property = 5;
}

var a = new ClassA();

module.exports = a;

b.js

var a = require("./a");

var ClassB = function() {
}

ClassB.prototype.doSomethingLater() {
    util.log(a.property);
}

module.exports = ClassB;

私の問題は、ClassBのインスタンスの中からClassAのインスタンスにアクセスできないことにあるようです。

私が望むことを実現するための、正しい/より良いモジュール構造の方法はありますか? モジュール間で変数を共有するためのより良い方法はありますか?

どのように解決するのですか?

node.jsでは、循環的な require の依存関係があることがわかりました。 かなり面倒 そのため、おそらくコードを再構築して、それを必要としないようにしたほうがよいでしょう。 他の2つのクラスを使って、必要なことを実現する3つ目のクラスを作るとか。