使用TypeScript+Express+NodeJS+MongoDB 开发 Web APIs,如有错误可以击提issue 💪,如果觉得ok,请点个star 🙏,
送人玫瑰、手有余香
仓库地址 ➡️FE_note
本系列文章
nodeJs错误处理
通过上面的学习,存在一个很大问题,就是我们把操作数据库的错误抛给了client
这种实践是非常糟糕的,现在我们封装一个错误处理的中间件。
首先,让我们创建一个将用于引发错误的类。
src/exceptions/HttpException.ts
class HttpException extends Error{
constructor(public status:number,public message:string){
super(message);
this.status=status;
this.message=message
}
}
export default HttpException
如果您想了解有关Error对象和一般错误的更多信息,请尝试使用try…catch检查 JavaScript处理错误,最后
接下来,书写错误中间件
middleware/error.middleware.ts
import {
Request,Response,NextFunction} from 'express'
import HttpException from '../expceptions/httpException'
function errorMiddleware(error:HttpException,request:Request,response:Response,next:NextFunction){
const status=error.status