Skip to content

Instantly share code, notes, and snippets.

@nkbt
Last active August 29, 2015 14:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nkbt/f563301657ed0ff21f93 to your computer and use it in GitHub Desktop.
Save nkbt/f563301657ed0ff21f93 to your computer and use it in GitHub Desktop.
Circular dependency in NodeJS

Может и баян старый, но я тут наступил сегодня: циклические зависимости в ноде резолвятся в пустой объект. Вот немного сильно упрощенного кода.

Есть модуль 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 будет просто {}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment