我们可以把错误,分成多个模块去处理它
    比如 一个中间件是打印错误, 另外一个是错误数量统计, 通过next()来传递。
    重点:next(error)
    当next传入了参数(string || buffer)之后,会直接进入errorHandler,不执行后面的中间件。
    下面的代码是自定义的一个errorHandler,很简单,就是app.use()传三个参数和四个参数的区别。
    文档https://www.expressjs.com.cn/guide/error-handling.html

    1. const app = express();
    2. app.use((req, res, next) => {
    3. res.write('1');
    4. next();
    5. });
    6. app.use((req, res, next) => {
    7. res.write('2222');
    8. if (true) {
    9. next('未登录');
    10. }
    11. next();
    12. });
    13. app.use((req, res, next) => {
    14. res.write('3');
    15. next();
    16. });
    17. app.use((error, req, res, next)=> {
    18. console.log(error)
    19. next(error)
    20. })
    21. let count = 0
    22. app.use((error, req, res, next)=> {
    23. count +=1
    24. console.log(`目前有${count}个错误`)
    25. next(error)
    26. })
    27. app.listen(3000, () => {
    28. console.log('正在listen 3000');
    29. });

    每请求一次(刷新一次localhost:3000) 就会+1
    image.png