我无法弄清楚为什么我的包含语句会引发此错误
"name": "SequelizeEagerLoadingError"
我有问题的 Controller 功能看起来像这样
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
}
我试过改变它的查询方式,用户的主键,几乎所有我能想到的。 User 和 subscribedCurrency 之间的关系是多对多的。
没有包含语句和 findOne 查询工作得很好!
最佳答案
我认为您只需要删除 as: 'subscribed currency'
,因为您还没有定义与别名的关联。
所以从这个:
include: [{
model: subscribedcurrency,
as: 'subscribed currency'
}]
对此:
include: [{
model: subscribedcurrency,
}]
关于postgresql - Postgres 包含抛出 "name": "SequelizeEagerLoadingError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50094831/