Require возвращает пустой объект
у меня есть папка, которая имеет индекс.js и несколько моделей (классов)
индекс.js
module.exports = {
Book : require('./book'),
Author : require('./author')
}
книги.js
var Author = require('./author')
var Book = models.ActiveRecord.extend({
schema : {
belongsTo : {
author : Author
}
}
})
module.exports = Book
автор.js
var Book = require('./book')
var Author = models.ActiveRecord.extend({
schema : {
hasMany : {
author : Book
}
}
})
module.exports = Author
проблема в том, что автор класса, кажется, не найти книгу! Это просто пустой объект.
Однако, если я переключу экспорт в индекс.js, ставя книгу после автора-это работает, но потом другая модель перестает работать.
Я не хочу делать никаких хаков, чтобы заставить его работать.
1 ответ:
это потому, что у вас есть циклическая зависимость. Узел.js обрабатывает это очень специфическим образом:
первый модуль загружается и запускается (в этом случае
book.js). Это (book.js) загрузит и запустит второй модуль (author.js), когда он (book.js) требует другой (author.js)когда второй модуль (
author.js) загружается и запускается, он (author.js) требуется первый модуль (book.js), но он (author.js) получите частично заполненной
Comments