错误处理是指Express如何捕获和处理同步和异步发生的错误。Express内置默认的错误处理程序,开发人员也可以编写自己的错误处理程序。
/**
* express框架的路由与中间件
*/
const express = require("express");
const path = require("path");
const fs = require("fs");
const server = express();
server.get("/",(req,res,next)=>{
//1.同步代码抛出的错误Express会捕获和处理它
if(req.statusCode == 500)
{
throw new Error("出问题啦!");
}
//2.异步代码返回的错误必须传递给next()函数,Express会捕获和处理
fs.readFile("/xxx.txt",(err,data)=>{
if(err)
{
next(err);
}else
{
res.send(data);
}
});
});
//错误处理函数【自定义错误程序】
//【注意】如果不定义该方法,express会采用内置的错误处理程序处理。
server.use((err,req,res,next)=>{
console.error("自定义错误:"+err.stack);
});
server.listen(3000,()=>{
console.log("express框架服务端开始监听端口3000");
});
运行结果如下:
【注释掉自定义错误处理函数】
【不注释】
本篇主要介绍express框架的异常捕获和处理。