Может и баян старый, но я тут наступил сегодня: циклические зависимости в ноде резолвятся в пустой объект. Вот немного сильно упрощенного кода.
Есть модуль models/user:
var api = require('../lib/api');
function UserModel() {
}
UserModel.staticHelper = function() {
}
module.exports = UserModel;
Есть модуль lib/api:
exports.get = function() {
}
exports.set = function() {
}
Есть фабрика factory/user:
var UserModel = require('../models/user');
console.log(UserModel); // ожидаем [function UserModel]
module.exports = function() {
return new UserModel();
}
Если в lib/api добавить:
var userFactory = require('../models/user');
Тогда в фабрике вместо ожидаемого function UserModel
будет просто {}