我需要使用sequelize和NodeJS在小写字母中插入first_name
和last_name
。
如何定义一个所有条目都应为小写的模型?
const Users = sequelize.define('users', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
},
mobile : {
type: Sequelize.STRING,
}
first_name: {
type: Sequelize.STRING,
},
last_name :{
type: Sequelize.STRING,
},
email :{
type: Sequelize.STRING,
}
},
{
freezeTableName: true // Model tableName will be the same as the model name
},
{
where: {
$and: [
sequelize.where(sequelize.fn('lower', sequelize.col('first_name'))),
sequelize.where(sequelize.fn('lower', sequelize.col('last_name')))
]
}
}
);
答案 0 :(得分:0)
你正在寻找的是beforeCreate()
sequelize hook:
const Users = sequelize.define('users', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
},
mobile : {
type: Sequelize.STRING,
}
first_name: {
type: Sequelize.STRING,
},
last_name :{
type: Sequelize.STRING,
},
email :{
type: Sequelize.STRING,
}
},
{
freezeTableName: true
},
hooks: {
beforeCreate: function(user){
user.first_name = user.first_name.toLowerCase();
user.last_name = user.last_name.toLowerCase();
return user;
}
}
);