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

免费网站无需下载直接观看张掖网站建设培训

免费网站无需下载直接观看,张掖网站建设培训,app网站开发报价,上海聚众网站建设公司需求 需要对接口的异常响应码,手动设置message文本!!! 例如:项目中使用multer中间件实现文件上传,multer设置了文件大小限制,该中间件校验文件时错误(文件超出)会自动响…

需求

需要对接口的异常响应码,手动设置message文本!!!

例如:项目中使用multer中间件实现文件上传,multer设置了文件大小限制,该中间件校验文件时错误(文件超出)会自动响应为:

status: 413
statusMessage: 'Playload Too Large' // 响应数据
{"message": "File too large","error": "Payload Too Large","statusCode": 413
}

但是我想自定义设置该message的文本,甚至是设置statusMessage文本

实现

通过局部异常过滤器实现

custom-exception.filter.ts

import {ArgumentsHost,Catch,ExceptionFilter,HttpException,HttpStatus,
} from '@nestjs/common';// 码对应消息
export class CodeMessage {code: number;message: string;constructor(code: number, message: string) {this.code = code;this.message = message;}
}@Catch()
export class CustomExceptionFilter implements ExceptionFilter {// 允许传入对象或者对象数组constructor(private readonly codeMessage: CodeMessage | CodeMessage[]) {}catch(exception: HttpException, host: ArgumentsHost) {const ctx = host.switchToHttp(); // 获取请求上下文// const request = ctx.getRequest(); // 获取请求上下文中的request对象const response = ctx.getResponse(); // 获取请求上下文中的response对象const status =exception instanceof HttpException? exception.getStatus(): HttpStatus.INTERNAL_SERVER_ERROR; // 获取异常状态码let code = 500; // 错误码let message = '服务器错误(Service Error)'; // 错误信息if (Array.isArray(this.codeMessage)) {// 处理数组for (let i = 0; i < this.codeMessage.length; i++) {const item = this.codeMessage[i];if (item.code === status) {code = item.code;message = item.message;}}} else if (Object.prototype.toString.call(this.codeMessage) === '[object Object]' &&this.codeMessage.code === status) {// 处理对象code = this.codeMessage.code;message = this.codeMessage.message;}// 设置返回的状态码, 请求头,发送错误信息response.setHeader('Content-Type', 'application/json; charset=gb2312');response.status(status);// response.statusMessage = message;	// 这里可以设置响应码说明文本, 但是不能设置中文// 响应数据response.send({message,code,// data: {},});}
}

使用

  @Post('test')@UseFilters(new CustomExceptionFilter({ code: 413, message: '文件大小错误' }))test() {throw new HttpException('模拟异常', 413);return 'OK';}
http://www.yayakq.cn/news/257175/

相关文章:

  • 南昌网站制作方案定制东莞公司网站建设公司哪家好
  • 绍兴网站建设方案托管怎么制作app软件教程
  • 购物网站系统建设方案西安十大网络公司
  • 手机网站页面如何制作直接可以秒玩的游戏
  • 产品设计五个流程南阳seo优化公司
  • django网站开发源代码自媒体平台注册入口账
  • 网页制作创建站点内容如何提升网站权重
  • 做网站的过程wordpress 在线商店
  • 大连网站建设比较好的公司wordpress ajax 参数
  • 北京 网站 外包小众电商平台有哪些
  • 企业网站seo排名优化wordpress主题验证失败
  • 外贸网站制作价格表界面设计心得
  • 建设一个网站多少钱上海最新发布
  • ps和dw 做网站做头像网站静态
  • 阴阳师网站怎么做58招聘求职找工作
  • 什么是网站开发技术中小型网站建设平台
  • 陕西省建设厅三类人员报名网站自己怎么做网站空间
  • 高端品牌网站建设集团青岛建站
  • 如何知道网站的字体怎么做网站的移动端适配版
  • 网站建设策划书ol网站和管理系统的区别
  • 重庆智能网站建设推荐做视频赚钱的国外网站
  • 石家庄网站外包公司商务信息网站
  • 瑞安做企业网站找哪家如皋网站建设
  • 公司网站设计费计入什么科目seo网络推广方法
  • 哪个网站做投票链接模板好看2023年适合小学生的新闻有哪些
  • 中国建设银行亚洲网站装修设计师培训班
  • 厦门网站建设外包维护特效型网站
  • 环保公司网站架构怎么做公司网站 自己是空间服务商 cms
  • 网站制作图书网站建设整体方案
  • 网站建设从入门到精通 网盘笔记本做网站服务器