nestjs入门教程系列(三):动态路由到底该怎么用

如何获取前端请求中的参数

引子

我们在处理前端发送过来的请求时,需要访问客户端的request信息,那么我们该怎么操作呢?由于nestjs提供对底层平台的访问即express,所以我们可以通过注入的方式来方位请求对象

TIPS:需要从@nestjs/common包里面引入Param,express 里面引入Request,否则代码会报错

import { Controller, Get, Post,Param,Req } from '@nestjs/common';
import { Request } from 'express';@Get('/findById')findById(@Req() request:Request):string{console.log("🚀 ~ file: cats.controller.ts:14 ~ CatsController ~ findById ~ request:", request)return "this is find by id..."}

在这里插入图片描述

这样我们就能拿到前端的请求信息了…

动态路由

如何获取前端在路由上面传过来的参数,比如/:id 或者 /query?id=1 或者 /query?id=1name=zs

接下来就是我们要研究的重点了

  1. 首先我们来看第一种情况/:id路由参数

方式一

  @Get('/findById/:id')findById(@Req() request:Request):string{console.log("🚀 ~ file: cats.controller.ts:14 ~ CatsController ~ findById ~ request:", request)return "this is find by id..."}

先上代码,看写法,与前端框架的动态路由是不是相似,一种似曾相识的感觉!要的就是这种感觉

请求成功
在这里插入图片描述

控制台的打印,request的内容很长,我们找重点看,拉到这里,是不是就和我们的接口请求上面的数据对上了
在这里插入图片描述

这样我们就可以通过request对象来获取路由的请求参数了

方式二

方式一比较原始,nest给我们提供了更便利的方法

  @Get('/findById/:id')findById(@Param() params:any):string{console.log("🚀 ~ file: cats.controller.ts:20 ~ CatsController ~ findById ~ params:", params)return "this is find by id..."}

先上代码,使用了@Param这个注解,见名思意了

在这里插入图片描述

我们再次发起请求,可以看到此时的log信息就直接明了了…

是不是很方便,相比第一种方法,cgs~~~~~~

  1. 其实我们来看路由上的?开始的参数

操作过程通第一种情况,现在我们只看操作效果

  @Get('/findByName')findByName(@Query() params:any):string{console.log("🚀 ~ file: cats.controller.ts:27 ~ CatsController ~ findByName ~ params:", params)return "this is find by name..."}

在这里插入图片描述

是不是也就拿到了?后面的数据,cgs~~~~~~~~~~~

在这里插入图片描述

我们在多加几个数据测试

在这里插入图片描述

看到下面的效果,是不是很ok~~~~~~~

在这里插入图片描述

这次的分享就到这里,关注我后续更精彩哦~

更多精彩内容请关注下篇!!!
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

旅行旅游研学线路景点门票特产周边小程序开源版开发

旅行旅游研学线路景点门票特产周边小程序开源版开发 以下是旅行旅游研学线路景点门票特产周边小程序开源版开发的功能列表: 首页: 展示热门线路和推荐景点信息提供搜索功能,用户可以通过关键词搜索线路、景点、特产等显示当前位置和附近的景…

wish店铺的审核周期是多久?wish排名规则是什么?-站斧浏览器

wish店铺的审核周期是多久? 在开设新的Wish店铺或者新增产品时,Wish会对店铺和产品进行审核,确保它们符合平台的规定和要求。然而,Wish并没有明确说明店铺审核的具体周期,审核时间会因各种因素而有所不同。 1.新店铺…

SEM扫描电镜成像质量影响因素

本文介绍影响扫描电镜图像质量的因素及其对图像质量的影响,分别从加速电压、扫描速度和信噪比、束斑直径、探针电流、消像散校正、工作距离以及反差对比等分析图像质量的变化原因,提出提高图像质量的方法。 扫描电子显微镜是(Scanning El…

LangChain(0.0.340)官方文档十一:Agents之Agent Types

LangChain官网、LangChain官方文档 、langchain Github、langchain API文档、llm-universe《Agent Types》、《Examples using AgentType》 文章目录 一、快速入门1.1 概念1.2 基本示例1.2.1 配置LangSmith1.2.2 使用LCEL语法创建Agents1.2.3 使用自定义runtime执行1.2.4 使用A…

哪种猫粮比较好?超能打的5款主食冻干测评

不知道从什么时候开始掀起一股冻干喂养风,各种查资料阅读文献发现冻干喂养是最适合忙碌地打工人的“生骨肉喂养”替代版,是最符合猫咪饮食天性的一种。很多养猫人纷纷开始冻干喂养,但对于主食冻干猫粮的选择就让很多猫奴犯了难在电商平台随便…

AMR在机械行业中的运用十分广泛,提高了生产效率和降低了人力成本

随着智能制造和工业4.0的发展,AMR在机械行业中的运用十分广泛,成为推动机械行业智能化和自动化的重要技术装备之一。AMR的出现在很大程度上改变了传统的人工搬运方式,提高了生产效率和降低了人力成本。 在机械行业中,富唯智能AMR…

Arduino串口发送接收和串口中断事件

目录 一、硬件介绍 1、控制器 2、TTL转USB串口 二、软件程序 1、单片机发送字符串 (1)每个串口对应的类名称介绍 (2)发送功能 (3)代码 (4)测试 2、单片机接收字符串 &…

elasticsearch系列七:聚合查询

概述 今天咱们来看下es中的聚合查询,在es中聚合查询分为三大类bucket、metrics、pipeline,每一大类下又有十几种小类,咱们各举例集中,有兴许的同学可以参考官网:https://www.elastic.co/guide/en/elasticsearch/refere…

闲来无事互相翻包,来看看我们的2023通勤EDC

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩北京录音间 EDC,Every Day Carry,顾名思义就是每天包里装的东西。 什么?难道除了…

idea的pom.xml文件灰色删除线解决办法

以上是点击了移除module后就变成这样 如果再次对着已移除的module右键会发现有个delete,点击这个是真删了,要谨慎备份哦 解决方案:恢复误操作remove module的解决方法 idea最右边,有个Maven控件,找到要恢复的module&a…

ssm基于vue的大学生社团管理系统的设计与实现+vue论文

基于vue的大学生社团管理系统的设计与实现 计算机科学与技术 2022届 姓名 学号 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的大学生社团信息管理模式,采用人工登…

java-MyBatis项目配置

java-MyBatis项目配置 最近博主在学习MyBatis,学习了一下MyBatis项目配置。 下面博主就讲一下这个项目配置的一个情况 先看一下配置流程大纲: 后续,我会解释一下这些配置文件的意义 1.创建一个maven项目,为什么要创建这个项目&…

在markdown中添加视频的两种方法

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 文章目录 方式一源代码: 方式二结尾语网络的梦想 markd…

Qt篇——QwtPainter::drawPie绘制扇形

QwtPainter::drawPie(QPainter *painter, const QRectF &rect, int startAngle, int angle); 一、参数含义: painter: 重绘函数中的painter对象 rect: 要绘制扇形的圆的外切矩形。 startAngle: 要绘制的扇形的起始角 …

Scala知识点——App类

我们在代码中一般程序都是是通过main方法进入。但是在scala中提供了一个App类,通过继承可以实现不用显式的调用main方法就能运行。 App类中实现了main方法:

Prometheus/Loki+Alertmanager+Grafana监控告警

@toc 告警模式 1、Prometheus+Alertmanager 2、Loki+Alertmanager 除了上面提到的服务,我们可以补充主要服务如下图: 部署方式 Node exporter+Prometheus+Alertmanager:Helm Promtail+Loki:Helm Grafana:Helm 1、Node exporter+Prometheus+Alertmanager方式 1)安装 添加H…

基于ssm西安旅游管理系统论文

摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对西安旅游信息管理的提升&#x…

Python/R/GUI/BI类型常用数据可视化工具

什么是数据可视化工具? 数据可视化工具是指旨在可视化数据的所有形式的软件。它们处理数据输入,将其转换为用户可以根据自己的需求进行定制的视觉效果。 不同的工具可以包含不同的功能,但最基本的是,数据可视化工具提供输入数据集…

2024 年政府和技术预测

新的一年即将来临,这意味着专家、技术专家和专栏作家应该尝试预测 2024 年政府和技术即将出现的一些最大趋势。今年可能使这些预测变得更加困难的是事实上,许多技术正在以惊人的速度向前发展。在某些情况下,过去需要多年才能慢慢发生的变化现…

每日汇评:黄金走势艰难,但有望在2023年上涨14%

黄金价格在此前从三周高点回落后又回到了上涨轨迹; 在2023年最后一个交易日,由于美债收益率低迷,美元再次走弱; 黄金价格有望突破2100美元,每日技术面仍有利于买家; 尽管前一天金价从三周高点 2089 美元回落…