Reputation: 87
I need to insert first_name
and last_name
in a lower case using sequelize and NodeJS.
How do I define a model where all entries should be in lower case?
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')))
]
}
}
);
Upvotes: 4
Views: 3379
Reputation: 11291
What you're looking for is 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;
}
}
);
Upvotes: 4