我正在尝试创建一个端点,通过该端点可以访问研究所数据和相关主题数据。我试图通过在findAll命令上使用include选项来做到这一点。
模型定义:
sequelize.define("institutes",
{
instituteId: {
type: DataTypes.STRING,
unique: true,
primaryKey: true
}
,instituteName: {
type: DataTypes.STRING,
unique: true
}
}
sequelize.define("subjectA", {
instituteId: {
type: DataTypes.STRING,
unique: true,
references: { model: "institutes", key: "instituteId" }
}
,subjectTeacher: {
type: DataTypes.STRING
}
}
查询定义:
const {institutes} = require("../models")
const {subjectA} = require("../models")
module.exports = {
async instituteData (req,res) {
try {
const info = await institutes.findAll({include: [{model: "subjectA", required: true}], limit: 12})
res.send(info)
} catch (err) {
res.send({message: "This request did not work!"})
}
}
}
我还在项目的其他位置定义了subjectA.belongsTo(institutes, { foreignKey: 'instituteId' , foreignKeyConstraint:true });
。
结果应该是类似SELECT * FROM institutes INNER JOIN subjectA on institutes.instituteID = subjectA.instituteId
的SQL查询,但到目前为止,该查询未返回任何内容。如果我省略了include选项,则查询工作正常。