Skip to content

Instantly share code, notes, and snippets.

@luizpicolo
Last active April 17, 2023 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save luizpicolo/9166276436da6d5fb53569b02d982750 to your computer and use it in GitHub Desktop.
Save luizpicolo/9166276436da6d5fb53569b02d982750 to your computer and use it in GitHub Desktop.

Métodos Sequelize

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:

No local do User você deve alterar para o nome do modelo desejado.

Retornar registros (similar Select)

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.' });
    }
})

Criar novos registros (Similar Insert)

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.' });
    }
})

Atualizar registros (Similar Update)

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.' });
    }
})

Apagar registros (Similar Delete)

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.' });
    }
})

Metodos extras.

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');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment