Une route asynchrone utilise async / await. Avec Express 5, une promesse rejetée dans un gestionnaire est transmise automatiquement au gestionnaire d'erreurs ; avec Express 4, il faut capturer l'erreur avec try / catch et appeler next(err), faute de quoi la requête reste en suspens.
Exemple
app.get('/users', async (req, res) => {
res.json(await listUsers());
});