[英]Sequelize include is not working with associated table
我正在使用 sequelize 5.21.2
我有一個用戶模型:
'use strict';
module.exports = (sequelize, Sequelize) => {
const users = sequelize.define('users', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
firstname: {
type: Sequelize.STRING,
allowNull: false,
},{
timestamp: true,
logging: console.log,
});
users.associate = function(models) {
models.users.hasMany(models.messages);
};
return users;
};
消息模型:
'use strict';
module.exports = (sequelize, Sequelize) => {
const messages = sequelize.define('messages', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
message:{
type: Sequelize.TEXT,
allowNull: false
}
}, {
timestamp: true,
logging: console.log,
scopes:{
withUser:{
include: [
{
model: sequelize.models.users
}
]
}
}
});
messages.associate = function(models) {
models.messages.belongsTo(models.users);
};
return messages;
};
我的控制器:
const db = require('../models');
const Messages = db.messages
exports.getOneMessage = (req, res) =>{
Messages.scope(['withUser']).findByPk(req.query.id).then(message => {
res.status(200).json({
"description": "getOne - " + req.query.id,
"message": message
});
}).catch(err => {
res.status(500).json({
"description": "Can not access",
"error": err
});
});
};
我有這個錯誤:
Error: Include unexpected. Element has to be either a Model, an Association or an object.
我究竟做錯了什么?
似乎問題來自范圍......如果我在控制器本身中包含所有內容,一切都是正確的。 我在我的項目中使用了很多范圍,但唯一給我帶來麻煩的是用戶模型......我不知道為什么。
const db = require('../models');
const Messages = db.messages
const Users = db.users
exports.getOneMessage = (req, res) =>{
Messages.findByPk(req.query.id, {include:[Users]}).then(message => {
res.status(200).json({
"description": "getOne - " + req.query.id,
"message": message
});
}).catch(err => {
res.status(500).json({
"description": "Can not access",
"error": err
});
});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.