Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite, and Microsoft SQL Server.
Connecting & Model Definition
const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize('postgres://user:pass@localhost:5432/mydb');
const User = sequelize.define('User', {
name: {
type: DataTypes.STRING,
allowNull: false
},
email: {
type: DataTypes.STRING,
unique: true,
validate: { isEmail: true }
}
});
// Synchronize database schema
await sequelize.sync();
CRUD Operations
// Create
const user = await User.create({ name: 'Alice', email: '[email protected]' });
// Read
const users = await User.findAll({
where: { name: 'Alice' },
order: [['createdAt', 'DESC']],
limit: 10
});
// Update
await User.update({ name: 'Bob' }, { where: { id: 1 } });
// Delete
await User.destroy({ where: { id: 1 } });
Model Associations
User.hasMany(Post);
Post.belongsTo(User);
// Eager loading with include
const userWithPosts = await User.findOne({
where: { id: 1 },
include: [Post]
});