我最近一直在与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依赖项,正如您发现的那样,循环require依赖项可以是pretty messy,您最好重新构造代码,使其不再需要.也许可以创建第三个类,使用其他两个类来完成您需要的任务.

Node.js相关问答推荐

如何从shell脚本中计算ecmascript模块?

条件内的表达式

即使卷已设置,Docker Nodemon 也不会热重载

Nestjs swc 错误:找不到模块项目路径/src/app.module

TS[2339]:类型 '() => Promise<(Document & Omit) | 上不存在属性空>'

是否可以在 NodeJS 代码库中的每个函数之前和之后添加 console.log?

如何使用Next.js/Node/TS正确地上传至S3

在生产环境中,Nest实例启动时抛出不完整的导入错误

如何获取文件的中间值?

登录用户并获取他们的个人资料

获取用户 ID 后,Firebase 函数 onCreate 方法在 Firestore 上不起作用

在 node:readline 中按 CTRL+D 时会发出什么信号?

我怎样才能让`git`失败而不是要求提供凭据

node.js 变量不存在代码块

如何在 Node.js 中逐字节读取二进制文件

从 CoffeeScript 中的数组中删除一个值

使用 Webpack 和 font-face 加载字体

Node.js -Firebase 服务帐户私钥不会解析

如何解决 Socket.io 404(未找到)错误?

将 Heroku App 连接到 Atlas MongoDB 云服务