Странная ошибка с node js: TypeError X не конструктор - PullRequest
1 голос
/ 04 августа 2020

Кто-нибудь знает, почему это происходит?

У меня довольно сложная система, поэтому для ее упрощения у нас есть этот код:

profile_manager. js

const Profile = require('./profile');

class ProfileManager {
  doThing() {
    const prf = new Profile("Lemon", "ade");
  }
}
const prfManager = new ProfileManager();
module.exports = prfManager;

profile. js

class Profile {
  constructor(arg0, arg1) {
    //do thing
  }
}

module.exports = Profile;

index. js

const prfManager = require('./profile_manager');
prfManager.doThing();

После вызова .doThing () я получаю ошибку TypeError, говорящую, что «Профиль не является конструктором» .

ОДНАКО ... Когда я меняю profile_manager. js на следующий код ниже, он работает отлично. Нет TypeError.

class ProfileManager {
  doThing() {
    const Profile = require('./profile');
    const prf = new Profile("Lemon", "ade");
  }
}
const prfManager = new ProfileManager();
module.exports = prfManager;

Я даже console.log записал объект prf, и он работает так, как я хочу. Почему это работает только тогда, когда я перемещаю «const Profile = require ('./ profile');» внутри метода, но когда я помещаю его в верхнюю часть модуля, он не хочет работать.

1 Ответ

0 голосов
/ 04 августа 2020

Я обнаружил, что этот профиль. js имел экземпляр profile_manager. js или что-то в этом роде

В этом сообщении говорится больше об этом Как справиться с зависимостями cycli c в Node.js

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