Требуется один пустой класс в том же каталоге - PullRequest
0 голосов
/ 18 июня 2020

У меня странная проблема с требованием. У меня есть рабочее дерево, подобное следующему:

./chat/
  |__ Chat.js
  |__ User.js
  |__ Message.js
./index.js

Каждый файл в каталоге чата - это классы, например:

// some requires

class Chat {
  constructor {...}
  // some methods
}

module.exports = Chat;

Требуется нормально работать ... кроме чата. Например, у меня есть что-то вроде этого:

const Chat = require("./Chat");
const Message = require("./Message");

class User {
  constructor() {
    console.log(Message); // print: [Function: Message]
    console.log(Chat); // print: {}
  }
}

module.exports = User;

Это работает для сообщений, но не для чата. И, что еще более странно, в другом файле, а не в этом каталоге, он работает!

У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ: Здесь сообщение. js

"use strict";

const User = require("./User");
const InvalidTypeError = require("../error/InvalidTypeError");

class Message {
  /**
   * @param {User} sender
   * @param {string} message
   * @param {string} ip
   */
  constructor(sender, message, ip) {
    if (!(sender instanceof User)) {
      throw new InvalidTypeError("Must pass a User object");
    }

    this.timestamp = Date.now();
    this.sender = sender;
    this.message = message;
    this.ip = ip;
  }

  /**
   * @returns {number}
   */
  getTimestamp() {
    return this.timestamp;
  }

  /**
   * @returns {User}
   */
  getSender() {
    return this.sender;
  }

  /**
   * @returns {string}
   */
  getMessage() {
    return this.message;
  }

  /**
   * @returns {string}
   */
  getIp() {
    return this.ip;
  }
}

module.exports = Message;

РЕШЕНО: эта проблема вызвана циклической зависимостью

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...