nestjs从零到一,快速上手(七) 拦截器的使用

演示代码:

1. logs.controller.ts

import { Body, Controller, Post, UseInterceptors } from '@nestjs/common';
import { IsNotEmpty, IsString } from 'class-validator';
import { SerializeInterceptor } from '../interceptors/serialize/serialize.interceptor';
import { Expose } from 'class-transformer';class LogsDto {@IsString()@IsNotEmpty()msg: string;@IsString()id: string;@IsString()name: string;
}
class PublicLogsDto {@Expose()msg: string;
}
@Controller('logs')
export class LogsController {@Post()@UseInterceptors(new SerializeInterceptor(PublicLogsDto))postTest(@Body() dto: LogsDto) {console.log('🚀 ~ LogsController ~ postTest ~ dto:', dto);return dto;}
}

2. serialize.interceptor.ts代码

import {CallHandler,ExecutionContext,Injectable,NestInterceptor,
} from '@nestjs/common';
import { plainToInstance } from 'class-transformer';
import { map, Observable } from 'rxjs';@Injectable()
export class SerializeInterceptor implements NestInterceptor {constructor(private dto: any) {}intercept(context: ExecutionContext, next: CallHandler): Observable<any> {// const req = context.switchToHttp().getRequest();console.log('这里在拦截器执行之前');return next.handle().pipe(map((data) => {console.log('datadata', data);return plainToInstance(this.dto, data, {// 设置为true之后,所有经过该interceptor的接口都需要设置Expose或Exclude// Expose就是设置哪些字段需要暴露,Exclude就是设置哪些字段不需要暴露excludeExtraneousValues: true,});}),);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/35428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

压缩图片png格式该怎么操作?试试下面这3个图片压缩工具吧

png是经常用于储存图片的一种格式&#xff0c;随着现在图片在日常工作和生活中的广泛使用&#xff0c;在很多的使用场景中都有应用。png的图片质量高而且支持无损压缩&#xff0c;在缩小图片的时候不会因为压缩而影响图片的清晰度&#xff0c;更适合在网上的存储、分享或者传输…

论文阅读MVBench: A Comprehensive Multi-modal Video Understanding Benchmark

摘要(Abstract)&#xff1a; 论文介绍了MVBench&#xff0c;这是一个全新的多模态视频理解基准测试&#xff0c;旨在评估多模态大型语言模型&#xff08;MLLMs&#xff09;在视频理解方面的能力。 目前许多基准测试主要集中在静态图像任务的空间理解上&#xff0c;而忽视了动…

c++进程间通信--zeromq

ZeroMQ&#xff08;也写作 MQ、0MQ 或 zmq&#xff09;是一个高性能的异步消息队列库&#xff0c;提供了一种灵活的方式来实现进程间通信&#xff08;IPC&#xff09;以及网络通信。在C中使用ZeroMQ进行进程间通信非常直观和高效。zmq的通信模式如下&#xff1a; 下面先说明请求…

保护你的代码堡垒:精通npm audit命令

保护你的代码堡垒&#xff1a;精通npm audit命令 在当今快速发展的软件开发领域&#xff0c;安全漏洞如同暗夜中的刺客&#xff0c;随时可能对我们的应用程序发起致命一击。幸运的是&#xff0c;npm提供了一个强大的安全审计工具——npm audit命令&#xff0c;它能帮我们检测和…

第 11 课:组件介绍与自定义开发

本讲主要介绍了隐语的组件标准、已有的组件能力以及进一步的自定义开发流程。经过本讲的学习&#xff0c;可以为将隐语集成到任意调度系统&#xff0c;基于Kusica/SecretPad进行二次开发&#xff0c;以及参与隐语开放标准共建建立基础。 一、隐语开放标准 隐语提出的适用于隐私…

2024.06.26【读书笔记】|医疗科技创新流程(前言)【AI增强版】

目录 《BIODESIGN》第二版前言详细总结前言概述新增重要内容价值导向 (Value Orientation)全球视角 (Global Perspectives)更好的教学和学习方法 (Better Ways to Teach and Learn)全新视频集合 (New Videos)扩展的“实地”案例研究 (Expanded “From the Field” Case Studies…

产品3D展示有哪些优势?3D能替代2D展示吗?

随着科技的飞速发展和经济的持续增长&#xff0c;我们见证了一个从2D到3D的产品展示革命。与传统的2D图片展示相比&#xff0c;3D产品展示正以其独特的优势逐渐崭露头角。 一、3D产品展示的独特优势 1、更逼真的视觉效果&#xff1a; 3D展示技术能够以更为真实、立体的方式展…

证件照制作工具有哪些?这6个帮你自制证件照

许多人可能认为&#xff0c;制作一张符合标准要求的证件照&#xff0c;必须亲自前往照相馆。 然而&#xff0c;事实上&#xff0c;我们完全可以使用手机或电脑上的证件照制作app&#xff0c;自己轻松完成证件照的制作。无论是更换背景颜色&#xff0c;还是调整照片尺寸&#x…

qt qml-http之XMLHttpRequest介绍详解使用

文章目录 QML中的XMLHttpRequest详解与示例基本用法示例代码代码详解更复杂的示例:POST请求代码详解结论QML中的XMLHttpRequest详解与示例 XMLHttpRequest 是 QML 中用于执行HTTP请求的一种机制,类似于Web中的AJAX。它可以用来进行异步的数据传输,可以从服务器获取数据,也…

【ARM】Ulink不同的系列对于芯片的支持和可以支持keil软件

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 了解不同版本的ULINK可以支持的芯片架构&#xff0c;和ULINK可以和哪个系列的keil软件进行在线调试 2、 问题场景 用于了解不同ULINK仿真器对于芯片的支持是不一样的&#xff0c;并不是ULINK可以支持所有的keil软件…

typescript 枚举类型

枚举类型 枚举类型是为数不多的特有类型之一&#xff0c;它允许开发者定义一组命名常量&#xff0c;这些常量可以是数字或字符串类型。枚举类型提供了一种方式来组织和管理一组相关的值&#xff0c;使得代码更加清晰和易于理解。 数字枚举类型 enum Direction1 {Up 1, //初…

1. ansible作用、部署

ansible作用、部署 一、ansible介绍1、ansible特性 二、ansible安装部署1、建议配置ssh免密2、安装ansible3、配置主机清单文件 /etc/ansible/hosts3.1 未分组的写法3.2 分组的写法 4、添加非免密的主机 一、ansible介绍 基于python语言开发的&#xff0c;自动化运维工具 作用…

2024系统分析师考试总结

考试缘由 我自己在毕业不久就考过了中级的软件设计师&#xff0c;这几年换到外企后事情不多&#xff0c;今年初定计划的时候就想着不如考个系统分析师吧。为什么选这个类别呢&#xff1f;按道理我主做程序开发&#xff0c;如果去考系统架构师通过率可能会大一些&#xff0c;但…

【Uniapp微信小程序】图片左右分割/分割线切割图片/图片批量分割线切割

特别说明:本文章因业务组件功能,不完全开放/暂vip可见,有需要者留言找博主! ps:注意!!本效果为图片分割切割!!不是文档切割!!图片仅供参考! 效果图 父组件 / 上传图片页面(index) 写一个上传按钮即可,事件方法: uni.chooseMessageFile({extension: [".j…

kylin v10 系统 rpm安装常见问题

libprofiler.so.0()(64bit) is needed by nginx-1:1.16.1-2.ky10.aarch64 安装gperftools-libs gperftools-libs-2.6.1-1.el7.i686 : Libraries provided by gperftools Repo : base Matched from: Provides : libprofiler.so.0libjpeg-devel 安装libjpeg-turbo-d…

Unity | Shader基础知识(第十六集:简单的全息扫描效果)

目录 一、前言 二、准备模型 三、 场景准备 四、代码准备 五、透明度设置 六、补充介绍 1.Pass语法介绍 2.ColorMask 七、作者的碎碎念 一、前言 这节课的内容是接着弧形边缘光的效果之后做的。 Unity | Shader基础知识(第十四集&#xff1a;简单效果练习)_unity shade…

idea或vscode支持vue语法,ts可解析*.vue

一、ide不能解析vue文件 刚开始导入时&#xff0c;在vscode中的vue文件中内容都是灰色的 ide不能解析vue解决方法&#xff1a; 1.idea或webstorm安装vue.js插件 2.在vscode中 vue2.0的项目安装vetur插件vue3.0及以上的项目安装Vue-official插件&#xff08;之前是Volar&…

PC XMind v24 解锁版安装教程 (全球领先的商业思维导图软件)

前言 XMind 是一款专业的全球领先的商业思维导图软件&#xff0c;在国内使用广泛&#xff0c;拥有强大的功能、包括思维管理、商务演示、与办公软件协同工作等功能。它采用全球先进的Eclipse RCP软件架构&#xff0c;是集思维导图与头脑风暴于一体的可视化思考工具&#xff0c…

mysql GROUP_CONCAT分组连接

文章目录 GROUP_CONCAT 分组连接GROUP_CANCAT 的使用分班级列出名单分班级列出名单并包含显示性别组合IFNULL组合IF组合case when GROUP_CONCAT 分组连接 准备的数据示例 CREATE TABLE students (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,classNa…

Rust监控可观测性

可观测性 在监控章节的引言中&#xff0c;我们提到了老板、前端、后端眼中的监控是各不相同的&#xff0c;那么有没有办法将监控模型进行抽象、统一呢&#xff1f; 来简单分析一下&#xff1a; 业务指标实时展示&#xff0c;这是一个指标型的数据( metric )手机 APP 上传的数…