Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

O mongo por padrão ja funciona de forma assincrona?

Fiquei com um pouco de dúvida já que não coloquei nenhum async/await. Isso já é um padrão do node?

4 respostas

Oi Guilherme, tudo bem? Muitas coisas no Node são assíncronas sim, em suas APIs, era até muito comum o uso de callbacks, porém, com o surgimento da Promise e do async/await, fomos cada vez mais parando de usar callback no Node. Muito disso, vem da arquitetura do Node mesmo, mas é bom notar, tem coisas síncronas no Node também.

Entendi, Wanderson! Mas quando a gente utiliza o mongo e eu teria que passar os métodos para cadastrar, listar, etc da mesma forma, correto? Porque no caso, eu não utilizei nenhum desses recursos pra indicar que o que eu estou fazendo, esta sendo assíncrono e mesmo assim funciona..

static cadastrarLivro = (req, res) => {
      const livro = new livros(req.body);

      livro.save((err) => {
         if (err) {
            res.status(500).json({
               message: `${err.message} - falha ao cadastrar livro.`,
            });
         } else {
            res.status(201).json(livro);
         }
      });
   };

Se fosse no mysql, ao menos quando fazia localmente utilizando o sequelize ele "exigia" que eu colocasse alguma assincronicidade.

solução!

Oi Guilherme, esse trecho de código que você postou é assíncrono, usando callbacks no caso. No caso do uso do Sequelize, pode ser que o seu editor te alerte sobre essas questões por que o Sequelize é um ORM se não me engano com suporte a TypeScript direto nele mesmo. Então ele meio que reclama com você. No geral, praticamente todas as bibliotecas que lidam com algum recurso externo como: Banco de Dados, Requisições, etc, sempre vão seguir algum padrão de comportamento assíncrono, por que é o recomendado, normalmente.

Opa! Agora entendi!!!! Valeu Wanderson! xD

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software