#mysql #sequelize.js
#mysql #sequelize.js
Вопрос:
Я создаю поддельный веб-сайт онлайн-банкинга. Возникли проблемы с определенной частью, где я пытаюсь сделать так, чтобы каждый пользователь мог иметь много учетных записей, используя метод belongsTo. Я был таблицей accounts для хранения внешнего идентификатора пользователя.
Вот модель пользователей
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 в accounts всегда отображается как Null. Спасибо за любую помощь!
Комментарии:
1. Не могли бы вы, пожалуйста, показать, как вы сохраняете данные об учетных записях?
2. Извините, что именно вы имеете в виду под этим?
3. Вы только что сказали, что это
UserId
всегда равно null, поэтому я подумал, что вы пытаетесь сохранить что-то вUserId
, но в db значение null. Или как, по-вашему, работает ассоциация? Потому что тогда я не понимаю вашего вопроса. Попытайтесь лучше объяснить себя.
Ответ №1:
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