Question

J'essaie d'utiliser une promesse à l'intérieur de la fonction App.get qui dirigera une requête qui fonctionnera sur une promesse.Mais le problème est que la réponse n'attend pas la promesse et répond simplement en arrière.

Une idée de la façon dont le code devrait donc une promesse peut vivre à l'intérieur de l'application express?

Était-ce utile?

La solution

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

Autres conseils

Voici une réponse du Documentation Express :

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
})

Il est notable principalement pour passer next via .catch() de sorte qu'un itinéraire de gestion d'erreur courante puisse encapsuler la logique de manutention en aval.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top