异步等待可以毫无问题地用于数据库查询。您可以使用try catch,但是有一个更优雅的解决方案,该解决方案使您可以使用提供以下功能的错误处理中间件:
您可以使用以下功能包装中间件:
const asyncMiddleware = fn => (req, res, next) => { Promise.resolve(fn(req, res, next)) .catch(next); };然后,您可以按以下方式使用它:
const asyncMiddleware = require('./utils/asyncMiddleware');router.get('/', asyncMiddleware(async (req, res, next) => { const user = await getUserFromDb({ id: req.params.id }) res.json(user);}));如果抛出错误,则控件将被移交给错误处理中间件,该中间件是middlware,它具有以下四个参数:
app.use(function (err, req, res, next) { // your error pre})


