如何从中间件将错误返回给ExpressJS

如何从中间件将错误返回给ExpressJS

在本文中,我们将讨论使用中间件将错误/异常返回给ExpressJS的问题。错误处理是指捕获和处理可能发生的同步和异步错误。幸运的是,ExpressJS自带了自己的错误处理程序,因此您无需自己编写。

中间件函数可以访问请求对象和响应对象,以及应用程序请求-响应生命周期中的下一个函数。如果同步代码引发错误(在路由处理程序和中间件内部),ExpressJS将自动捕获并处理它,您无需额外操作。

示例1: 下面的路由抛出一个错误,ExpressJS会自动捕获它(同步代码)。

const express = require("express"); 
const app = express(); 
app.get("/", function (req, res) { 
    throw new Error("BROKEN"); 
}); 
app.listen(3000); 

输出:

如何从中间件将错误返回给ExpressJS

示例2: 上述示例是同步代码的示例,但ExpressJS在异步处理错误时会有怎样的表现。下面的示例展示了相同的情况。

const fs = require("fs"); 
const express = require("express"); 
const application = express(); 
  
application.get("/", function (req, res, next) { 
    fs.readFile("/file-not-found", function (err, data) { 
        if (err) { 
            next(err); // Passing errors to Express. 
        } else { 
        // sending back the response if everything works well. 
            res.send(data);  
        } 
    }); 
}); 
  
application.listen(3000);

输出:

如何从中间件将错误返回给ExpressJS

示例3: 下面给出了错误处理中间件;它接受四个参数而不是三个。

const fs = require("fs"); 
const express = require("express"); 
  
const application = express(); 
  
application.get("/", function (req, res) { 
  fs.readFile("/file-not-found"); 
}); 
  
application.use((err, req, res, next) => { 
  console.error(err.stack); 
  res 
    .status(500) 
    .send( 
      "<h1 style='color:green;text-align:center;'>GfG<h1/><br />" + 
        "<pre style='text-align:center;'> 
            Something broke!<pre/>"
    ); 
}); 
  
application.listen(3000);

输出:

如何从中间件将错误返回给ExpressJS

这样,您可以使用中间件在ExpressJS中返回错误/异常,您还可以根据自己的风格发送完整的HTML文件显示错误404或错误500。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程