Express框架之捕获错误

本文探讨了在Node.js环境中如何处理异步API的错误,包括使用回调函数、Promise的catch方法以及异步函数的try-catch。通过示例展示了在Express应用中如何设置错误处理中间件,确保程序在遇到如文件未找到等错误时仍能继续运行,增强程序的健壮性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

捕获错误

在node.js中,异步API的错误信息都是通过回调函数获取的,支持Promise对象的异步API发送错误可以通过catch方法捕获,异步函数执行如果发生错误要如何捕获错误。

try catch 可以捕获异步函数以及其他同步代码在执行过程中发生的错误,但是不能捕获其他类型的API发生的错误。

app.get("/",async(req,res,next)=>{
	try{
		await User.find({name:"张三"})
	}catch(ex){
		next(ex);
	}
	});
// 引入express框架
const express = require('express');
// 创建网站服务器
const app = express();
const fs = require('fs');
const promisify = require('util').promisify;
const readFile = promisify(fs.readFile);

// 错误处理中间件
// 当访问/index这个请求地址的时候,程序就会抛出一个错误
app.get('/index',async (req, res, next) => {
	try{
		await readFile('/aaa.js')
	}catch (ex) {
		next(ex);
	}
	// await readFile('./aaa.js')
})
// 当程序抛出错误以后,会自动执行错误处理函数中间件
app.use((err,req,res,next)=>{
	// 当服务器发生错误,状态码应该设为500
	res.status(500).send(err.message);
})
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功') 

在这里插入图片描述
程序不会因为一个文件没有读取到而终止运行,这增加了程序的健壮性。
try catch 可以捕获到程序的错误,可以捕获异步函数的错误和同步代码的错误但是不能捕获其他类型的错误。比如说回调函数或Promise对象的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值