私には2つの主キーがあるUSERSテーブルがあります:idとmail、ユーザーは別のテーブルの連絡先と1:1の関係を持っています。私はRefreshTokenテーブルの2つの外部キーをメールとIDに関連して "エクスポート"したいと思います。Sequelize + Nodejs内に複数の外部キーがあります
USERSテーブルの定義:
module.exports = function (sequelize, DataTypes) {
const Users = sequelize.define('Users', {
id: {
type: DataTypes.INTEGER(11),
autoIncrement: true,
primaryKey: true
},
firstname: {
type: DataTypes.STRING,
allowNull: true
},
lastname: {
type: DataTypes.STRING,
allowNull: true
},
email: {
type: DataTypes.STRING,
allowNull: false,
primaryKey: true
},
password: {
type: DataTypes.STRING,
allowNull: false
}
}, {
classMethods: {
associate: function (models) {
Users.hasOne(models.RefreshToken, {foreignKey:'userId'}
}
},
tableName: 'Users',
hooks: {
beforeCreate: user => {
const salt = bcrypt.genSaltSync();
user.password = bcrypt.hashSync(user.password, salt);
}
}
});
RefreshTokenテーブル定義:
module.exports = function (sequelize, DataTypes) {
const RefreshToken = sequelize.define('RefreshToken', {
idRefreshToken: {
type: DataTypes.INTEGER(11),
autoIncrement: true,
primaryKey: true
},
token: {
type: DataTypes.TEXT,
allowNull: true
},
expire: {
type: DataTypes.DATE,
allowNull: true
}
}, {
tableName: 'RefreshToken'
});
私はより完全な質問をしました! – tinytanks