📅  最后修改于: 2023-12-03 15:30:41.342000             🧑  作者: Mango
在使用Express框架在TypeScript中开发应用程序时,错误处理是非常重要的一部分。本文将介绍如何在Express TypeScript应用程序中处理错误。
错误处理是通过在应用程序的路由或中间件中抛出Error对象来进行的。例如,考虑以下路由:
import { Request, Response, Router } from 'express';
const router = Router();
router.get('/', (req: Request, res: Response) => {
const err = new Error('Something went wrong!');
throw err;
});
export default router;
当使用此路由调用浏览器时,将在控制台中看到以下错误消息:
Error: Something went wrong!
at /path/to/file.ts:5:15
这证明了路由中的错误已经处理,并且我们已经在控制台中看到了错误消息。
全局错误处理是指在应用程序中处理所有未处理的错误的过程。在Express TypeScript中,我们可以通过在应用程序中添加以下代码块来实现全局错误处理:
import express, { Request, Response, NextFunction } from 'express';
const app = express();
// ...
app.use((err: any, req: Request, res: Response, next: NextFunction) => {
console.error(err.stack);
res.status(500).send('Something went wrong!');
});
export default app;
这段代码中,我们使用了express的Error Handling Middleware,它会拦截应用程序中所有未处理的错误并将它们传递给自定义错误处理程序。在自定义错误处理程序中,我们可以记录错误消息,向客户端发送错误响应等。注意,在错误处理程序中,第一个参数是错误对象,我们必须将其作为第一个参数。
在Express TypeScript中,错误处理是非常重要的一部分。通过在路由或中间件中抛出错误对象,我们可以处理运行时发生的错误。同时,我们也可以通过全局错误处理程序来处理应用程序中未处理的错误,以便更好地跟踪和调试错误。