Я смотрю на некоторый код Angular, который обрабатывает файлы javascript некоторых моделей, и я наткнулся на этот сегмент кода, который, похоже, присваивает ассоциации с каждой из моделей.
fs.readdirSync(__dirname).filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
}).forEach(file => {
const model = sequelize['import'](path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
Код вкажется, что модели присваивают ассоциированный элемент UploadAnalyte модели UploadBatch и повторяют это для двух других моделей.Мне интересно, как приведенный выше код связывает данные модели с приведенным ниже кодом модели, поскольку структура данных sql не совсем понятна.
UploadAnalyte.associate = (models) => {
UploadAnalyte.belongsTo(models.UploadBatch, {
foreignKey: 'batch_row_id'
});
};