Pregunta

Estoy tratando de usar una promesa dentro de la función App.Get que ejecutará una consulta que se ejecutará en una promesa.Pero el problema es que la respuesta no espera la promesa y solo responde.

¿Alguna idea de cómo el código debería ser una promesa que puede vivir dentro de App.Get en Express App?

¿Fue útil?

Solución

app.get('/test', function (req, res) {
    db.getData()
    .then(function (data) {
        res.setHeader('Content-Type', 'text/plain');
        res.end(data);
    })
    .catch(function (e) {
        res.status(500, {
            error: e
        });
    });
});

Otros consejos

Aquí hay una respuesta de la Documentación expresa :

app.get('/', function (req, res, next) {
  // do some sync stuff
  queryDb()
  .then(function (data) {
    // handle data
    return makeCsv(data)
  })
  .then(function (csv) {
    // handle csv
  })
  .catch(next)
})

app.use(function (err, req, res, next) {
  // handle error
})

Es notable principalmente para pasar next mediante .catch() para que una ruta de manejo de errores comunes pueda encapsular la lógica de manejo de errores.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top