Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

100
Visualizações
Función de espera que devuelve un objeto de respuesta indefinido

No tengo mucha experiencia con async/await, pero incorporé las palabras clave en una función que básicamente obtiene o publica datos en la base de datos MongoDB. Parece que await no espera a que se cumpla la promesa y devuelve un objeto de respuesta indefinido .

Estoy teniendo el siguiente error:

res.error(404).json({mensaje: mensaje electrónico}) ^

TypeError: no se pueden leer las propiedades de undefined (leyendo 'error') en Object.getAllItems (/Users/myName/Desktop/TODOList/backend/Controllers/ItemsConroller.js:12:13)

Aquí está mi código:

ItemsController.js:

 const getAllItems = async (req, res) => { try{ const items = await Item.find({}) res.status(200).json(items) } catch(e){ res.error(404).json({message: e.message}) } }

Archivo servidor.js:

 app.get('/todos', (req, res) => { dbItem.getAllItems().then(data => { console.log("entered") res.send(data); }) })

El mismo problema con otras funciones en el archivo del controlador que incorpora palabras clave await/async.

Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No está pasando su objeto req y res a su punto final /todos : para hacer que su aplicación sea más sólida, intente esto:

Puede usar getAllItems como su middleware de esta manera

 app.get('/todos', dbItem.getAllItems, (req, res) => { if(!req.error){ res.send(req.items) }else{ res.send(req.error) } })

Y adjunte sus variables al objeto req y páselas a /todos

 const getAllItems = async (req, res, next) => { try{ const items = await Item.find({}) req.items = items next() } catch(e){ req.error = e.message next() } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda