首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Sequelize belongsTo

如何使用Sequelize belongsTo
EN

Stack Overflow用户
提问于 2019-11-13 00:44:43
回答 1查看 503关注 0票数 0

我有像下面这样的简单的sequelize模型。

代码语言:javascript
复制
// user.js
module.exports = function(sequelize, DataTypes) {
  const user = sequelize.define(
    "User",
    {
      name: {
        field: "name",
        type: DataTypes.STRING(50),
        unique: true,
        allowNull: false
      },
      uid: {
        field: "uid",
        type: DataTypes.STRING(50),
        allowNull: false
      }
    },
    {
      freezeTableName: true,

      tableName: "user"
    }
  );
  user.associate = function(models) {
    user.hasMany(models.friend, {
      foreignKey: "uid"
    });
  };

  return user;
};

还有另一种模型。

代码语言:javascript
复制
// friend.js 
module.exports = function(sequelize, DataTypes) {
  const friend = sequelize.define(
    "Friend",
    {
      uid: {
        field: "uid",
        type: DataTypes.STRING(50),
        allowNull: false
      },
      jsonId: {
        field: "json-id",
        type: DataTypes.STRING(50),
        allowNull: true
      },
      nlpId: {
        field: "nlp-id",
        type: DataTypes.STRING(50),
        allowNull: true
      }
    },
    {

      freezeTableName: true,

      tableName: "friend"
    }
  );
  friend.associate = function(models) {
    friend.belongsTo(models.user, { foreignKey: "uid" });
  };

  return friend;
};

这就是index.js。当我运行sequelize时,它给我一个类似于" error : Friend.belongsTo调用了不是Sequelize.Model的子类的东西“的错误。

你能推荐一些解决这个问题的建议吗?非常感谢您的阅读。

代码语言:javascript
复制
db.user = require('./user')(sequelize, Sequelize);
db.friend = require('./friend')(sequelize, Sequelize);
EN

回答 1

Stack Overflow用户

发布于 2020-01-14 22:05:27

写入用户模型

代码语言:javascript
复制
User.associate = models => {
        User.hasMany(models.Friend, {
            as: 'friends',
            foreignKey: 'userId'
        });
    };

写给好友模型

代码语言:javascript
复制
Friend.associate = models => {
        Friend.belongsTo(models.User, {
            as: 'friend',
            foreignKey: 'userId'
        });
    };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58823117

复制
相关文章

相似问题

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