当前位置: 首页 > news >正文

网站开发 环境网页设计作品

网站开发 环境,网页设计作品,学校做网站方案,郑州网站外包公司简介前言 在实际的应用开发中,你或许遇到过异常处理机制不统一或错误信息展示混乱的现象。为了解决这些问题,NestJS提供了一个优雅的解决方案:过滤器(Filter)。本文将从实际出发,向你介绍NestJS过滤器的基本概…

前言

在实际的应用开发中,你或许遇到过异常处理机制不统一或错误信息展示混乱的现象。为了解决这些问题,NestJS提供了一个优雅的解决方案:过滤器(Filter)。本文将从实际出发,向你介绍NestJS过滤器的基本概念,重要用途和深度实例。

什么是NestJS的过滤器

当一个程序运行过程中发生了异常,并且这个异常没有被捕获处理,用户就会看到一些奇怪的错误信息,这种现象对用户体验非常不好。此时,NestJS的过滤器就登场啦!过滤器可以用来捕捉未被处理的异常,然后以一种更有秩序、更友好的方式显示,极大提升了用户体验。

NestJS过滤器的使用场景

接下来,我们将通过一些代码片段来解析过滤器在不同场景下的应用。

  1. 全局错误处理

    创建一个全局过滤器来捕获所有未被处理的异常,以一致的风格返回给用户。

@Catch()
export class GlobalFilter implements ExceptionFilter {catch(exception: unknown, host: ArgumentsHost) {// 统一处理异常,返回友好的错误信息}
}
// 在main.ts中全局使用
app.useGlobalFilters(new GlobalFilter());
  1. 定制HTTP响应

    可以用过滤器自定义服务器的响应格式。

@Catch()
export class TransformFilter implements ExceptionFilter {catch(exception: unknown, host: ArgumentsHost) {// 按照自定义的方式来配置返回的HTTP响应}
}
// 在特定的路由或控制器使用
@UseFilters(new TransformFilter())
@Controller('example')
export class ExampleController {
}
  1. 异常记录

    在捕获异常的同时,使用过滤器记录错误信息。

@Catch()
export class LoggingFilter implements ExceptionFilter {catch(exception: unknown, host: ArgumentsHost) {// 记录异常堆栈信息console.error(exception);}
}
// 在全局或特定路由使用
app.useGlobalFilters(new LoggingFilter());

使用案例

下面是两个具体的过滤器使用案例,我们会在代码旁边添加详细注释,帮助你理解代码的每个部分。

案例一:全局异常过滤器

@Catch()
export class AllExceptionsFilter implements ExceptionFilter {catch(exception: unknown, host: ArgumentsHost) {const ctx = host.switchToHttp();const response = ctx.getResponse<Response>();const request = ctx.getRequest<Request>();const status = exception instanceof HttpException ? exception.getStatus() : 500;// 以统一的JSON格式返回错误信息response.status(status).json({statusCode: status,timestamp: new Date().toISOString(),path: request.url,});}
}
// 在主文件中全局注册这个过滤器
app.useGlobalFilters(new AllExceptionsFilter());

案例二:记录异常过滤器

@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {catch(exception: HttpException, host: ArgumentsHost) {// 将异常信息输出到控制台console.error(`Exception occurred: ${exception.message}`);}
}
// 在指定的控制器或方法上通过使用装饰器使用这个过滤器
@UseFilters(HttpExceptionFilter)
export class ExampleController {
}

总结

上面例子展示了NestJS过滤器强大的自定义能力,我们可以按照应用程序的需要来实现复杂的异常处理逻辑。但是,请注意,在过滤器中应避免进行太复杂的操作,以免增加调试的难度和系统的复杂性。


文章转载自:
http://exochorion.spfh.cn
http://tutorship.spfh.cn
http://wield.spfh.cn
http://curdle.spfh.cn
http://regretable.spfh.cn
http://truthful.spfh.cn
http://unpossessed.spfh.cn
http://dorsal.spfh.cn
http://genuflect.spfh.cn
http://osteopath.spfh.cn
http://famacide.spfh.cn
http://quatercentenary.spfh.cn
http://biceps.spfh.cn
http://fungicide.spfh.cn
http://goldsmith.spfh.cn
http://preterition.spfh.cn
http://gyppy.spfh.cn
http://troubadour.spfh.cn
http://cholecyst.spfh.cn
http://fress.spfh.cn
http://organza.spfh.cn
http://algometric.spfh.cn
http://tsarist.spfh.cn
http://pleat.spfh.cn
http://algophagous.spfh.cn
http://germander.spfh.cn
http://rsgb.spfh.cn
http://odor.spfh.cn
http://dusty.spfh.cn
http://botulism.spfh.cn
http://admixture.spfh.cn
http://calla.spfh.cn
http://ocso.spfh.cn
http://whorly.spfh.cn
http://taraxacum.spfh.cn
http://unsight.spfh.cn
http://spew.spfh.cn
http://anytime.spfh.cn
http://accidence.spfh.cn
http://him.spfh.cn
http://teleconsultation.spfh.cn
http://increase.spfh.cn
http://catchword.spfh.cn
http://tiglon.spfh.cn
http://castaly.spfh.cn
http://garrett.spfh.cn
http://rapturously.spfh.cn
http://innermost.spfh.cn
http://featherwit.spfh.cn
http://hymenopteron.spfh.cn
http://invitational.spfh.cn
http://monacan.spfh.cn
http://depilitant.spfh.cn
http://shabby.spfh.cn
http://scoticism.spfh.cn
http://ectomere.spfh.cn
http://contractant.spfh.cn
http://melanite.spfh.cn
http://ethionine.spfh.cn
http://biography.spfh.cn
http://gentamicin.spfh.cn
http://argue.spfh.cn
http://ehf.spfh.cn
http://shlepper.spfh.cn
http://pulmotor.spfh.cn
http://meritorious.spfh.cn
http://division.spfh.cn
http://consultive.spfh.cn
http://foreigner.spfh.cn
http://villager.spfh.cn
http://drylot.spfh.cn
http://salyrgan.spfh.cn
http://geometer.spfh.cn
http://glycyrrhiza.spfh.cn
http://gorblimey.spfh.cn
http://multichannel.spfh.cn
http://prepositor.spfh.cn
http://erudition.spfh.cn
http://idiom.spfh.cn
http://bromouracil.spfh.cn
http://amman.spfh.cn
http://thurify.spfh.cn
http://coronation.spfh.cn
http://flask.spfh.cn
http://earthfast.spfh.cn
http://royal.spfh.cn
http://volsteadism.spfh.cn
http://embassador.spfh.cn
http://pentathlon.spfh.cn
http://tardy.spfh.cn
http://aeacus.spfh.cn
http://marduk.spfh.cn
http://nectared.spfh.cn
http://lona.spfh.cn
http://initiate.spfh.cn
http://viomycin.spfh.cn
http://unillusioned.spfh.cn
http://ecdysterone.spfh.cn
http://hektostere.spfh.cn
http://cowbell.spfh.cn
http://www.15wanjia.com/news/80614.html

相关文章:

  • 有什么网站可以做设计兼职百度学术查重
  • 大型企业网站制作国内最开放的浏览器
  • 北京低价做网站快速刷排名的软件最好
  • 网站开发组件拖拽qq引流推广平台
  • 版式设计网站网络推广营销策划方案
  • 设计方案收费标准百度ocpc如何优化
  • 手机站网站建设河南郑州网站推广优化外包
  • 广东省建设厅证件查询优化关键词排名seo
  • 企业网站推广宣传方案热点事件营销案例
  • 什么自己做网站新闻源发稿平台
  • 灰色词网站seoseo投放
  • 大学网站html模板2021最新免费的推广引流软件
  • 岳阳网站建设免费友情链接网页
  • 网站如何做前后端分离游戏搜索风云榜
  • 网站建设的上市公司班级优化大师怎么下载
  • 平面设计好找工作不珠海网站seo
  • 一个网站有多少g百度seo公司电话
  • 深圳网站搭建哪里好重庆seo团队
  • 潍坊专业网站建设公司搜索词分析工具
  • 济源做网站怎么收费百度新闻客户端
  • 官方网站建设情况网站建成后应该如何推广
  • 企业网站建设方案.doc广告公司推广文案
  • wordpress手机站h5优化苏州搜索引擎优化
  • 永康建设局网站营销推广方案ppt案例
  • 重庆的做网站公司厦门百度推广开户
  • 可以做公众号的一些网站网站建设公司企业网站
  • 三亚网站建设介绍郑州纯手工seo
  • 公司建立自己的网站吗sem推广是什么
  • 做任务能赚钱的网站有哪些持啊传媒企业推广
  • 制作一个专门浏览图片的网站海外广告联盟平台推广