1
resposta

Duvida de como fazer a classe de forma assíncrona

Tenho uma duvida, apenas pelo exemplo, se eu fosse fazer a "req, res" abaixo de forma assíncrona, como ela ficaria?

class LivrosControler {
    static atualizarLivro = (req, res) => {
        const id = req.params.id;
        livros.findByIdAndUpdate(id, {$set: req.body}, (err) => {
            if(!err) {
                res.status(200).send({message: "Livro atualizado com Sucesso"})
            } else {
                res.status(500).send({message: err.message})
            }
        })
}
1 resposta

Olá Bruno! Tudo bem?

Desde já peço desculpa pela demora para responder o seu tópico.

Para fazer a classe de forma assíncrona, você pode utilizar a sintaxe async/await do JavaScript. Ficaria assim:

class LivrosControler {
    static atualizarLivro = async (req, res) => {
        try {
            const id = req.params.id;
            await livros.findByIdAndUpdate(id, {$set: req.body});
            res.status(200).send({message: "Livro atualizado com Sucesso"})
        } catch (err) {
            res.status(500).send({message: err.message})
        }
    }
}

Nesse exemplo, utilizamos o try/catch para tratar erros e o await para aguardar a execução da função findByIdAndUpdate antes de continuar com a execução do código.

Espero ter ajudado. Caso tenha mais alguma dúvida ou problema, com relação ao tópico, ficarei à disposição.

Abraços e bons estudos!