【发布时间】:2020-09-28 00:21:10
【问题描述】:
当我使用 get 请求调用我的 API 时收到错误消息:
Include unexpected. Element has to be either a Model, an Association or an object.
我的模型如下所示:
module.exports = (sequelize, Sequelize) => {
const Productions = sequelize.define("productions", {
id: {
type: Sequelize.SMALLINT,
autoIncrement: true,
primaryKey: true
},
setupTime: {
type: Sequelize.DECIMAL(6, 3)
},
notes: {
type: Sequelize.TEXT
}
}, { timestamps: false });
return Productions;
};
module.exports = (sequelize, Sequelize) => {
const ProductionPrints = sequelize.define("productionPrints", {
id: {
type: Sequelize.SMALLINT,
autoIncrement: true,
primaryKey: true
},
compDate: {
type: Sequelize.DATE
}
}, { timestamps: false });
return ProductionPrints;
};
模型之间的关系在这里定义:
db.productions = require("./productions.model.js")(sequelize, Sequelize);
db.productionprints = require("./production-prints.model.js")(sequelize, Sequelize);
db.productions.hasOne(db.productionprints, {
foreignKey: {
name: 'productionId',
allowNull: false
}
});
db.productionprints.belongsTo(db.productions, { foreignKey: 'productionId' });
sequelize 查询如下所示:
const db = require("../models");
const Productions = db.productions;
const ProductionPrints = db.productionPrints;
exports.findAll = (req, res) => {
Productions.findAll({
include: [ { model: ProductionPrints, as: 'prints' } ]
})
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "An error occurred while finding the productions."
});
});
};
我已经检查了其他人的问题,但对于这些问题发布的任何解决方案都无济于事。通常它是由拼写错误或要求路径中的错误引起的。我已经检查了这些以及我所有其他包含的工作,只是没有检查我在产品模型中包含的任何模型。
非常感谢任何反馈。
【问题讨论】:
标签: mysql node.js typescript sequelize.js