O Sequelize é uma biblioteca de ORM (Object-Relational Mapping) para Node.js que fornece vários métodos de consulta para manipulação de dados no banco de dados. Abaixo estão alguns dos principais métodos de consulta do Sequelize com exemplos:
findAll(): Retorna todos os registros de uma tabela.
Exemplo:
// Rota
app.get('/usuarios', async function(req, res){
try {
var usuarios = await Usuario.findAll();
res.render('index', { usuarios });
} catch (err) {
console.error(err);
res.status(500).json({ message: 'Ocorreu um erro ao buscar os usuário.' });
}
})
findOne(): Retorna o primeiro registro que corresponde aos critérios de pesquisa.
Exemplo:
app.get('/usuarios/atualizar', async function(req, res){
try {
const usuario = await Usuario.findOne({ where: { id: req.query.id } });
res.render('usuarios/atualizar', { usuario });
} catch (err) {
console.error(err);
res.status(500).json({ message: 'Ocorreu um erro ao buscar o usuário.' });
}
})
findByPk(): Retorna um registro pelo seu ID.
Exemplo:
app.get('/usuarios/atualizar', async function(req, res){
try {
const usuario = await Usuario.findByPk(req.query.id);
res.render('usuarios/atualizar', { usuario });
} catch (err) {
console.error(err);
res.status(500).json({ message: 'Ocorreu um erro ao buscar o usuário.' });
}
})
create(): Cria um novo registro na tabela.
Exemplo:
app.post('/usuarios/adicionar', async function(req, res){
try {
await Usuario.create(req.body);
res.redirect('/usuarios')
} catch (err) {
console.error(err);
res.status(500).json({ message: 'Ocorreu um erro ao criar o usuário.' });
}
})
update(): Atualiza um registro existente na tabela.
Exemplo:
app.post('/usuarios/atualizar', async function(req, res){
try {
Usuario.update(req.body, { where: { id: req.body.id } });
res.redirect('/usuarios')
} catch (err) {
console.error(err);
res.status(500).json({ message: 'Ocorreu um erro ao atualizar o usuário.' });
}
})
destroy(): Exclui um registro existente na tabela.
Exemplo:
app.post('/usuarios/delete', async function(req, res){
try {
await Usuario.destroy({ where: { id: req.body.id } });
res.redirect('/usuarios')
} catch (err) {
console.error(err);
res.status(500).json({ message: 'Ocorreu um erro ao criar o usuário.' });
}
})
count(): Retorna o número total de registros na tabela.
Exemplo:
const count = await User.count();
max(): Retorna o valor máximo de uma coluna na tabela.
Exemplo:
const maxAge = await User.max('age');
min(): Retorna o valor mínimo de uma coluna na tabela.
Exemplo:
const minAge = await User.min('age');
sum(): Retorna a soma de valores de uma coluna na tabela.
Exemplo:
const total = await Order.sum('amount');