【发布时间】:2017-09-04 14:28:05
【问题描述】:
我有一个 USERS 表,其中有两个主键:id 和 mail,Users 与另一个表 Contacts 有 1:1 的关系。我想在与邮件和 ID 相关的 RefreshToken 表中“导出”两个外键。
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'
});
【问题讨论】:
标签: javascript mysql node.js express sequelize.js