麻烦与外键和belongsTo方法

时间:2019-04-01 21:40:17

标签: mysql sequelize.js

我正在制作一个假的网上银行网站。我尝试在某部分上遇到麻烦,因此每个用户可以使用belongsTo方法拥有多个帐户。我是用来存放用户外部ID的帐户表。

这是用户模型

module.exports = function (sequelize, DataTypes) {
    var User = sequelize.define("User", {

        firstName: {type:DataTypes.STRING, allowNull:false},
        lastName: {type:DataTypes.STRING, allowNull:false},
        addressLine1: {type:DataTypes.STRING, allowNull:false},
        addressLine2: {type:DataTypes.STRING, defaultValue: "Null"}, 
        city: {type:DataTypes.STRING, allowNull:false},
        state: {type:DataTypes.STRING, allowNull:false},
        zip: {type:DataTypes.INTEGER, allowNull:false},
        SSN:{type:DataTypes.STRING, allowNull: false},
        DOB: {type:DataTypes.STRING, allowNull:false},
        email: {type:DataTypes.STRING, allowNull:false},
        username: {type:DataTypes.STRING, allowNull:false},
        // acctNoCHK: {type:DataTypes.INTEGER, unique:true},
        // acctNoSAV: {type:DataTypes.INTEGER, unique:true}
    });

    User.associate = function (models) {
        User.hasMany(models.Account, {
            onDelete: "cascade"
        });
    };

    return User;
};

这是帐户模型

module.exports = function(sequelize, DataTypes) {
  var Account = sequelize.define("Account", {
    type: {type:DataTypes.STRING, allowNull:false},
    balance: {type:DataTypes.STRING, allowNull:false},
    isOpen: {type:DataTypes.BOOLEAN, allowNull:false}
  });

  Account.associate = function(models) {
    Account.belongsTo(models.User, {
      foreignKey: "UserId", targetKey: "id"
    });
  };

  return Account;
};

我到底在做什么错???帐户中的UserId列始终显示为Null。谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  var Account = sequelize.define("Account", {
    type: {type:DataTypes.STRING, allowNull:false},
    balance: {type:DataTypes.STRING, allowNull:false},
    isOpen: {type:DataTypes.BOOLEAN, allowNull:false},
    userId: {type: DataTypes.INTEGER } // need userId in Account
  });
const { id } = await Uesr.create({ ... });
await Account.create({ ...  , userId: id});// we need save userId