Всем привет!
Столкнулся с проблемой, почему-то подключаемый через require класс записывается в константу как объект:
const LietnerBox = require('../entities/LietnerBox');
Как следствие получаю ошибку "LietnerBox is not a constructor" при попытке инстанцировать объект данного класса.
Обратите внимание, класс RepeatResult подключается также, но он определяется именно как класс и не вызывает проблем.
Если же подключать класс внутри метода, то проблема исчезает.
const RepeatResult = require("../dto/RepeatResult");
// const LietnerBox = require('../entities/LietnerBox'); //получаю ошибку "LietnerBox is not a constructor"
class CardMover {
...
/**
* @param repeatResult {RepeatResult}
* @return {LietnerBox}
*/
_getNextBox(repeatResult) {
const LietnerBox = require('../entities/LietnerBox'); //код выполняется корректно
return new LietnerBox(1);
}
...
}
module.exports = CardMover;
Подскажите, почему так и какие есть нюансы использования require в Node.js?
файл класса LietnerBox
class LietnerBox {
/**
* @param num {Number}
*/
constructor(num) {
this._num = num;
...
}
...
}
module.exports = LietnerBox;