Node.js Express framework中的错误处理问题

Node.js Express framework中的错误处理问题,node.js,express,error-handling,Node.js,Express,Error Handling,我目前正在node.js+express+mongoDB项目中工作。我试图处理无法从数据库接收数据时发生的错误。我通过在控制台中终止mongod进程并调用来模拟这一过程。可悲的是,我并没有在《邮递员》中得到一个错误,而是在控制台中得到了未经处理的拒绝承诺。我读了很多关于错误处理的帖子,并根据以下指南实现了它:。如果您能告诉我如何解决这个问题,我将不胜感激 守则: 打印所有课程: router.get("/", async (req, res, next) => {

我目前正在node.js+express+mongoDB项目中工作。我试图处理无法从数据库接收数据时发生的错误。我通过在控制台中终止mongod进程并调用来模拟这一过程。可悲的是,我并没有在《邮递员》中得到一个错误,而是在控制台中得到了未经处理的拒绝承诺。我读了很多关于错误处理的帖子,并根据以下指南实现了它:。如果您能告诉我如何解决这个问题,我将不胜感激

守则:

打印所有课程:

router.get("/", async (req, res, next) => {
  try {
    const courses = await Course.find().sort("dishName");
    res.send(courses);
  } catch (ex) {
    next(ex);
  }
});
error.js:

module.exports = function (err, res, req, next) {
  res.status(500).send(`500 Error`);
};
index.js

const error = require(`./middleware/error`);

app.use(error);

app.use(error)被放置为最后一个app.use

您的代码中有一个小错误。错误处理函数中
req
res
参数的顺序不应更改

// Error.js
module.exports = function (err, req, res, next) {
  res.status(500).send(`500 Error`);
};

多么愚蠢的错误,非常感谢!你不知道我花了多少时间来解决这个问题,我很高兴。是的。每个人都会这样D