I'm having the following 3 files.
user.js requires room.js and room.js requires user.js.
user.js
var Room = require('./room.js');
var User = function () {};
User.prototype.test = function () {
return new Room();
};
module.exports = User;
room.js
var User = require('./user.js');
var Room = function () {};
Room.prototype.test = function () {
return new User();
};
module.exports = Room;
index.js
var User = require('./user.js');
var Room = require('./room.js');
var user = new User();
var room = new Room();
user.test();
room.test();
index.js requires both room and user.
Here's the problem. When I run index.js, I will get a TypeError from 'new User()' in room.js. It seems that User in room.js is hidden by the User in index.js.
Am I doing anything wrong? Is this kind of requiring allowed? Any ideas? Thanks.