У меня проблемы с выяснением, почему мой оператор включения выдает эту ошибку
"name": "SequelizeEagerLoadingError"
Моя рассматриваемая функция контроллера выглядит следующим образом
retrieve (req, res) {
return User
.findOne({
where: {
token_id: req.params.token_id
},
include: [{
model: subscribedcurrency,
as: 'subscribed currency'
}]
})
.then(user => {
if (!user) {
return res.status(404).send({
message: 'User Not Found'
})
}
return res.status(200).send(user)
})
.catch(error => res.status(400).send(error))
},
Модель для подписанной валюты выглядит следующим образом
module.exports = (sequelize, DataTypes) => {
var SubscribedCurrency = sequelize.define('SubscribedCurrency', {
symbol: {
type: DataTypes.STRING,
allowNull: false
},
name: {
type: DataTypes.STRING,
allowNull: false
},
priceAtSubscription: {
type: DataTypes.STRING,
allowNull: false
}
})
SubscribedCurrency.associate = (models) => {
SubscribedCurrency.hasMany(models.User, {
foreignKey: 'userId',
onDelete: 'CASCADE'
})
}
return SubscribedCurrency
}
Я пытался изменить то, как он запрашивает, первичный ключ пользователя, почти все, что я могу придумать. Отношения между Пользователем и подписанной валютой много-много.
без оператора include и запроса findOne отлично работает!