O Sequelize é um ORM baseado em promises para Node.js com suporte a Postgres, MySQL, MariaDB, SQLite e SQL Server.
Conexão e Definição de Modelos
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 }
}
});
// Sincronizar esquema do banco de dados
await sequelize.sync();
Operações CRUD
// Criar (Create)
const user = await User.create({ name: 'Alice', email: '[email protected]' });
// Consultar (Read)
const users = await User.findAll({
where: { name: 'Alice' },
order: [['createdAt', 'DESC']],
limit: 10
});
// Atualizar (Update)
await User.update({ name: 'Bob' }, { where: { id: 1 } });
// Excluir (Delete)
await User.destroy({ where: { id: 1 } });
Associações de Modelos
User.hasMany(Post);
Post.belongsTo(User);
// Carregamento adiantado (Eager loading) com include
const userWithPosts = await User.findOne({
where: { id: 1 },
include: [Post]
});