gpt4 book ai didi

node.js - 如何处理 Node.js 中的循环依赖

转载 作者:IT老高 更新时间:2023-10-28 21:46:15 29 4
gpt4 key购买 nike

我最近一直在使用 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 的实例。

是否有正确/更好的方法来构建模块以实现我想要的?有没有更好的方法在模块之间共享变量?

最佳答案

尝试在 module.exports 上设置属性,而不是完全替换它。例如,a.js 中的 module.exports.instance = new ClassA()b 中的 module.exports.ClassB = ClassB .js。当您创建循环模块依赖项时,请求模块将从所需模块获取对不完整 module.exports 的引用,您可以稍后在其上添加其他属性,但是当您设置整个 module.exports,你实际上创建了一个新对象,需要模块无法访问。

关于node.js - 如何处理 Node.js 中的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10869276/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com