我正在尝试通过nodejs中的sequelize ORM从MySql数据库中查询某些内容。
我的关联看起来像这样:
ResourceModel.belongsTo(models.ModuleM, {
foreignKey: 'moduleId',
sourceKey: 'id'
});
ResourceModel.hasMany(models.ResourceItemM, {
foreignKey: 'resourceId',
sourceKey: 'id'
});
ResourceModel.hasMany(models.ResourceComponentM, {
foreignKey: 'resourceId',
sourceKey: 'id'
});
我正在尝试使用以下方法获取资源的项目类型和模块名称:
ResourceModel.findAll({
limit: 5,
attributes: [
['resource_name', 'RESOURCE NAME'],
['res_code', 'RESOURCE CODE']
],
include: [
{
model: models.ModuleM,
attributes: [
['module_name', 'MODULE']
]
},
{
model: models.ResourceItemM,
attributes: [
['item_type', 'ITEM TYPE']
]
}
]
}).then((data)=> {
console.log('data: ', data);
})
.catch((err)=> {
console.log('Something went wrong: ', err);
})
现在,当我这样做时,我会收到一条错误消息:Unknown column \'ResourceModel.moduleId\' in \'on clause\'',
当我在没有第二个include对象的情况下执行此操作时,它工作正常,但失败了。知道为什么吗?