Есть 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