属性 无法在 Sequelize 模型创建中正确插入
Property won't insert properly in Sequelize Model Create
我想插入用户名、密码和角色。但是当我执行我的功能时,角色属性不会被执行。
这是我的迁移文件:
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
username: {
type: Sequelize.STRING,
unique: true,
},
password: {
type: Sequelize.STRING,
allowNull: false,
},
role: {
type: Sequelize.STRING,
allowNull: false,
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
这是我插入新数据的函数(usermodel.js)
static register = ({ username, password }) => {
const encryptedPassword = this.encrypt(password);
return this.create({ username, password: encryptedPassword, role: 'user' })
}
这是我执行函数时得到的结果:
Executing (default): INSERT INTO "UserModel" ("id","username","password","createdAt","updatedAt") VALUES (DEFAULT,,,,) RETURNING "id","username","password","createdAt","updatedAt";
我有什么地方做错了吗?任何帮助将不胜感激,谢谢!
显然,问题出在模型中。我还没有在模型初始化中定义角色。我通过在模型中添加角色来解决它:
UserModel.init({
username: DataTypes.STRING,
password: DataTypes.STRING,
role: DataTypes.STRING
}
我想插入用户名、密码和角色。但是当我执行我的功能时,角色属性不会被执行。
这是我的迁移文件:
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
username: {
type: Sequelize.STRING,
unique: true,
},
password: {
type: Sequelize.STRING,
allowNull: false,
},
role: {
type: Sequelize.STRING,
allowNull: false,
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
这是我插入新数据的函数(usermodel.js)
static register = ({ username, password }) => {
const encryptedPassword = this.encrypt(password);
return this.create({ username, password: encryptedPassword, role: 'user' })
}
这是我执行函数时得到的结果:
Executing (default): INSERT INTO "UserModel" ("id","username","password","createdAt","updatedAt") VALUES (DEFAULT,,,,) RETURNING "id","username","password","createdAt","updatedAt";
我有什么地方做错了吗?任何帮助将不胜感激,谢谢!
显然,问题出在模型中。我还没有在模型初始化中定义角色。我通过在模型中添加角色来解决它:
UserModel.init({
username: DataTypes.STRING,
password: DataTypes.STRING,
role: DataTypes.STRING
}