我有几个表,我想通过使用续集来检索数据。 这些表的架构如下所示:
我想加入其中三个表,但出现错误号1054。
这是我的代码:
技能模型:
'use strict';
module.exports=(sequelize,Datatypes)=>{
const Skill=sequelize.define('userskills',{
id:{type:Datatypes.INTEGER,autoincrement:true,primaryKey:true},
Userid:{type:Datatypes.INTEGER,allowNull:false},
Skill:{type:Datatypes.STRING,allowNull:false}
});
Skill.associate=(model)=>{
Skill.belongsTo(model.User,{
as:"User info",
onDelete:"CASCADE",
onUpdate:"CASCADE",
foreignKey: 'Userid',
targetKey:"id"
});
Skill.belongsTo(model.Subcategory,{
as:"Skill info",
onDelete:"CASCADE",
onUpdate:"CASCADE",
foreignKey:"Skillid",
targetKey:"id"
});
};
return Skill;
};
该函数用于获取数据:
router.get('/',(req,res)=>{
model.Skill.findAll({
include:[{all:true}]
}).then(result=>{
res.status(200).json({
result
});
}).catch(err=>{
res.status(500).json({
error:err
});
});
});
答案 0 :(得分:0)
您的ER图似乎与Sequelizer模型对象不匹配...例如,技能中的FK是名为“ Skillid”(模型)还是“ Skillkey”(ER)?
要跟踪sql错误1054(未知col):在node.js日志中,找到Sequelizer从findAll生成的查询,将其复制/粘贴到MySqlWorkbench并执行。哪一列错了?