Задать вопрос

Module.exports выдает не то, что требуется, как исправить?

Есть server.js:
var User = require('./user');
function run() {
  var vasya = new User("Вася");
  var petya = new User("Петя");

  vasya.hello(petya);
}

if (module.parent) {
  exports.run = run;
} else {
  run();
}

Есть user/index.js:
var phrases = require('./ru');

function User(name){
    this.name = name;
}

User.prototype.hello = function(who){
    console.log(phrases.Hello + ", " + who.name);
};
console.log(module);
module.exports = User;

После выполнения server.js в консольке выводит ошибку:
var vasya = new User("Вася");
^

TypeError: User is not a constructor
at run (/home/daniil/MyProjects/nodeJS-learn/server.js:3:15)
at Object. (/home/daniil/MyProjects/nodeJS-learn/server.js:12:3)
at Module._compile (internal/modules/cjs/loader.js:707:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
at Module.load (internal/modules/cjs/loader.js:605:32)
at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
at Function.Module._load (internal/modules/cjs/loader.js:536:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:760:12)
at startup (internal/bootstrap/node.js:303:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:872:3)


Что я делаю не так?
Вроде как в module.exports = User, значит в User в файле server.js, должен быть User из index.js, но там объект с User, а не сам User. Почему-то module.exports возвращает объект { User }, а не User.

P.s. version node 11
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@imnotwhoexpect Автор вопроса
Собственная невнимательность. Вопрос решён!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы