我正在查看一些处理某些模型的javascript文件的Angular代码,我遇到了这段代码,它似乎为每个模型分配了关联。
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);
}
});
模型中的代码似乎为模型UploadBatch的UploadAnalyte分配了一个关联,并对其他两个模型重复了此操作。我想知道上面的代码如何将模型数据链接到下面的模型代码,因为sql数据结构并不十分清楚。
UploadAnalyte.associate = (models) => {
UploadAnalyte.belongsTo(models.UploadBatch, {
foreignKey: 'batch_row_id'
});
};