首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres包括throws "name":"SequelizeEagerLoadingError“

Postgres包括throws "name":"SequelizeEagerLoadingError“
EN

Stack Overflow用户
提问于 2018-04-30 14:08:16
回答 1查看 745关注 0票数 0

我很难弄清楚为什么我的include语句抛出这个错误

代码语言:javascript
复制
"name": "SequelizeEagerLoadingError"

我的控制器函数看起来像这样

代码语言:javascript
复制
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))
  },

subscribedcurrency的模型如下所示

代码语言:javascript
复制
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之间是多对多的关系。

不需要include语句和findOne查询就可以完美地工作!

EN

回答 1

Stack Overflow用户

发布于 2018-04-30 18:26:07

我认为您所需要做的就是删除as: 'subscribed currency',因为您还没有定义与别名的关联。

因此,从这里可以看出:

代码语言:javascript
复制
include: [{
    model: subscribedcurrency,
    as: 'subscribed currency'
}]

要这样做:

代码语言:javascript
复制
include: [{
    model: subscribedcurrency,
}]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50094831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档