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

nest定义响应码message文本

需求

需要对接口的异常响应码,手动设置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';}

相关文章:

nest定义响应码message文本

需求 需要对接口的异常响应码&#xff0c;手动设置message文本&#xff01;&#xff01;&#xff01; 例如&#xff1a;项目中使用multer中间件实现文件上传&#xff0c;multer设置了文件大小限制&#xff0c;该中间件校验文件时错误&#xff08;文件超出&#xff09;会自动响…...

Java | Leetcode Java题解之第342题4的幂

题目: 题解&#xff1a; class Solution {public boolean isPowerOfFour(int n) {return n > 0 && (n & (n - 1)) 0 && n % 3 1;} }...

【日常开发】java中一个list对象集合 将字段a为 大豆 小麦 玉米等元素放在最前面 并组成新集合

&#x1f388;边走、边悟&#x1f388;迟早会好 在Java中实现这个功能&#xff0c;可以使用Stream来筛选出符合条件的元素&#xff0c;将它们放在新集合的前面&#xff0c;同时保留其他元素在新集合的后面。以下是如何实现的代码示例&#xff1a; 代码示例&#xff1a; impo…...

C++ 设计模式——原型模式

原型模式 原型模式主要组成部分原型模式的使用步骤原型模式的 UML 图原型模式 UML 图解析优点和缺点适用场景总结 原型模式 原型(Prototype)模式是一种创建型模式。原型模式通过(原型对象)克隆出对个一模一样的对象。实际上&#xff0c;该模式与其说是一种设计模式&#xff0c…...

【Harmony OS 4.0】待办列表案例

src/main/ets/example1/Models.ets // 定义class类数据模型 export class TaskDataModel {// private 私有属性&#xff0c;在类对象外不允许随意更改数据&#xff0c;必须本地初始化。private tasks: Array<string> [早起晨练, 准备早餐, 阅读名著, 学习ArkTs, 玩游戏…...

快速把文件名统计到excel表的方法

文件名统计到EXCEL表&#xff0c;这似乎很多人都没听说过&#xff0c;因为它与EXCEL表格不沾边&#xff0c;那么这个需求如何实现&#xff0c;用到什么方法&#xff0c;今天给大家介绍一个比较实用的方法&#xff0c;它可以把文件名或文件夹的名快速提取并统计到EXCEL表格上去。…...

开源通用验证码识别OCR —— DdddOcr 源码赏析(一)

文章目录 [toc] 前言DdddOcr环境准备安装DdddOcr使用示例 源码分析实例化DdddOcr实例化过程 分类识别分类识别过程 未完待续 前言 DdddOcr 源码赏析 DdddOcr DdddOcr是开源的通用验证码识别OCR 官方传送门 环境准备 安装DdddOcr pip install ddddocr使用示例 示例图片如…...

上升ECMAScript性能优化技巧与陷阱(下)

4. 深拷贝和浅拷贝的选择不当 在JavaScript中&#xff0c;对象是通过引用传递的&#xff0c;这意味着当你将一个对象赋值给另一个变量时&#xff0c;你实际上是在传递对象的引用&#xff0c;而不是对象本身。这导致了一个常见的问题&#xff1a;当你修改一个对象的属性时&…...

用7EPhone云手机进行TikTok的矩阵运营

“根据市局机构Statista发布的报告显示&#xff0c;截至2024年4月&#xff0c;TikTok全球下载量超过49.2亿次&#xff0c;月度活跃用户数超过15.82亿。TikTok的流量受欢迎程度可想而知&#xff0c;也一跃成为了全球第五大最受欢迎的社交APP。” 人群密集的地方社区也是适合推广…...

谷歌浏览器下载文件被阻止怎么解除

在工作生活中&#xff0c;我们会使用谷歌浏览器下载各种各样的文件&#xff0c;不过偶尔会遇到文件下载被阻止的情况。为了解决这一问题&#xff0c;本文为大家分享了实用的措施建议&#xff0c;一起来了解一下吧。&#xff08;本文由https://chrome.cmrrs.com/站点的作者进行编…...

apt E: 无法定位软件包 winehq-stable

执行了 添加wine源 wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources还需要执行 更新源 apt update...

P2460[SDOI2007] 科比的比赛

第一次做洛谷系列&#xff0c;紧张&#xff0c;请多关照哦 题目传送门&#xff1a;[SDOI2007] 科比的比赛 - 洛谷 思路分析 这道题大概题意是给定我们的主人公 Kobe Bryant 的 mm 个对手&#xff0c;nn 场比赛相对应的获胜概率。求 Kobe Bryant 最大全部获胜概率和打败对手能…...

linux学习--第二天

--Linux文件系统 -显示文件命令 cat 1. cat -b 文件&#xff1a;从1开始对非空输出行编号 2. cat -n 文件&#xff1a;从1开始对所有行编号 3. cat -s 文件&#xff1a;将连续多行空白行合并 more&#xff08;显示一屏文本内容&#xff09; 1. more -num 文件&#xff…...

使用 Flask、Celery 和 Python 实现每月定时任务

为了创建一个使用 Flask、Celery 和 Python 实现的每月定时任务&#xff0c;我们需要按照以下步骤进行&#xff1a; 1.安装必要的库 我们需要安装 Flask、Celery 和 Redis&#xff08;作为消息代理&#xff09;。我们可以使用 pip 来安装它们&#xff1a; bash复制代码 ​ p…...

【c语言】整数在内存中的储存(大小端字节序)

整数在内存中的储存&#xff08;大小端字节序&#xff09; 1.整数在内存中的储存 2.大小端字节序 3.整数在内存中储存例子 4.字节序判断 5.死循环现象 文章目录 整数在内存中的储存&#xff08;大小端字节序&#xff09;整数在内存中的储存大小端字节序什么是大小端为什么会有…...

浅谈SIMD、向量化处理及其在StarRocks中的应用

前言 单指令流多数据流(SIMD)及其衍生出来的向量化处理技术已经有了相当的历史&#xff0c;并且也是高性能数据库、计算引擎、多媒体库等组件的标配利器。笔者在两年多前曾经做过一次有关该主题的内部Geek分享&#xff0c;但可能是由于这个topic离实际研发场景比较远&#xff0…...

【ML】Image Augmentation)的作用、使用方法及其分类

图像增强&#xff08;Image Augmentation&#xff09;的作用、使用方法及其分类 1. 图像增强的定义2. 图像增强的作用3. 什么时候使用图像增强&#xff1f;4. 图像增强详细方法分类梳理4.1 图像增强方法列表4.2 边界框增强方法5. 参考资料 yolov3&#xff08;一&#xff1a;模型…...

设计模式六大原则(一)--单一职责原则

1. 简介 1.1. 概述 一个类或模块应该只负责完成一项任务或承担一个责任。如果一个类或模块承担了多个职责,那么当需要修改其中一个职责的功能时,就可能会对其他职责产生影响,从而导致代码耦合度增加,维护起来更加困难。 1.2. 主要特点 单一职责原则(Single Responsibi…...

c语言学习,malloc()函数分析

1&#xff1a;malloc() 函数说明&#xff1a; 申请配置size大小内存空间 2&#xff1a;函数原型&#xff1a; void *malloc(size_t size) 3&#xff1a;函数参数&#xff1a; 参数size&#xff0c;为申请内存大小 4&#xff1a;返回值&#xff1a; 配置成功则返回指针&#…...

【运维项目经历|041】上云项目-物理机迁移到阿里云

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 ​ 🏅阿里云ACE认证高级工程师 ​ 🏅阿里云开发者社区专家博主 💊交流社区:CSDN云计算交流社区欢迎您的加入! 目录 项目名称 项目背景 项目目标 项…...

从社交情绪预测到论文分类:DHGNN动态超图模型在两大真实场景下的性能实测与调优心得

动态超图神经网络实战&#xff1a;从社交情绪分析到学术论文分类的双场景深度解析 当面对微博海量用户情绪的实时波动&#xff0c;或是学术文献间错综复杂的引用关系时&#xff0c;传统图神经网络常显捉襟见肘。动态超图神经网络&#xff08;DHGNN&#xff09;通过独特的层级动…...

如何用Python快速接入Taotoken平台调用多模型API

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何用Python快速接入Taotoken平台调用多模型API 对于希望快速体验不同大模型能力的开发者而言&#xff0c;逐一对接各家厂商的API…...

LDAP认证失败率下降92%!DeepSeek集成最佳实践,含OpenLDAP/Active Directory双环境配置清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;LDAP认证失败率下降92%&#xff01;DeepSeek集成最佳实践&#xff0c;含OpenLDAP/Active Directory双环境配置清单 在企业级AI平台落地过程中&#xff0c;统一身份认证是安全与体验的基石。DeepSeek模型…...

九大网盘直链下载助手:一键获取真实下载地址的终极解决方案

九大网盘直链下载助手&#xff1a;一键获取真实下载地址的终极解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 /…...

基于词汇统计的个人技能量化管理系统:从理论到实践

1. 项目概述&#xff1a;当词汇统计遇上技能图谱最近在整理个人技能库时&#xff0c;我遇到了一个挺有意思的问题&#xff1a;如何用一种更科学、更直观的方式&#xff0c;来量化和管理自己那看似杂乱无章、不断增长的技能树&#xff1f;传统的简历列表或者简单的熟练度评级&am…...

3.【Python】Python3 数据类型转换

第一步&#xff1a;分析与整理数据类型转换1. 数据类型转换概述 数据类型转换分为两种&#xff1a; 隐式类型转换&#xff1a;Python 自动完成&#xff0c;无需干预。显式类型转换&#xff1a;使用内置函数手动转换。2. 隐式类型转换 规则&#xff1a;当不同类型的数据进行运算…...

开源HR智能体openhr-agent:本地部署、模块化设计与核心应用场景解析

1. 项目概述&#xff1a;一个开源的HR智能体最近在GitHub上看到一个挺有意思的项目&#xff0c;叫openhr-agent。光看名字&#xff0c;你可能会觉得这又是一个“AI要取代HR”的噱头工具。但实际深入了解一下&#xff0c;我发现它的定位和设计思路&#xff0c;比想象中要务实和清…...

文档版本混乱、变更无通知、示例代码过期?Perplexity DevDocs监控体系搭建指南(含GitHub Action自动告警模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;文档版本混乱、变更无通知、示例代码过期&#xff1f;Perplexity DevDocs监控体系搭建指南&#xff08;含GitHub Action自动告警模板&#xff09; 核心痛点与监控目标 现代开发者文档&#xff08;如 P…...

图片换背景底色怎么制作?2026年最全工具对比和实操指南

前几天&#xff0c;有个朋友问我怎样快速给证件照换个蓝色背景&#xff0c;我才意识到很多人其实不知道现在换背景底色有多简单。无论是证件照、商品图、还是自媒体头图&#xff0c;一键就能搞定。今天我就把自己用过的所有工具和方法整理出来&#xff0c;分享给大家。为什么越…...

Midjourney提示词工程实战手册(工业级Prompt架构白皮书):从语义解析、权重分配到多模态对齐的完整链路

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney提示词工程的核心范式与工业级演进路径 提示词工程已从早期的“关键词堆砌”跃迁为融合语义建模、风格解耦与可控生成的系统性工程。在工业级实践中&#xff0c;其核心范式正围绕**结构化提示…...