一个Post请求入门NestJS的路由与控制器

在这里插入图片描述

NestJS的控制器

控制器负责处理传入请求并向客户端返回响应。

控制器的目的是接收应用的特定请求。路由机制控制哪个控制器接收哪些请求。
通常,每个控制器都有不止一条路由,不同的路由可以执行不同的操作。

在使用了脚手架的项目中,我们都会使用 nest g controller 指令来创建一个新的控制器。

如:使用 nest g controller article 我们可以创建一个名为article的文件夹,作用就是专门处理endpoint为article的请求。

nest g controller article

在这里插入图片描述

NestJS的路由

在NestJS中,并没有具体的路由文件去指向不同的endpoint到特定的控制类文件中去处理,而是通过 @controller() 的装饰器去定义基本的控制器,且在 @controller() 中使用路径来对路由进行匹配。

如当我们在使用了 nest g controller 指令创建出一个控制器之后,我们可以在创建的class中添加如下代码,就可以将endpoint为article的路径都匹配到。

@Controller('article')

请求处理

至此,有了控制器以及路由作为基础知识,我们可以很快的复制出脚手架中的文件,即下图的/hello请求的接口,只是请求的链接设置为了/artcle/hello。

设置post请求的方式,需要首先将我们的@GET修改为@POST,则该接口会被修改为post请求允许访问。

除此之外,还有Delete、patch、update等常用methods

import { Controller, Post } from '@nestjs/common';
​
@Controller('article')
export class ArticleController {@Post('create')create(): string {return '创建文章成功';}
}


但此时依旧是无法获取到参数的,如创建文章时候,我们至少需要一个title参数,而该参数我们会将其放在body中,所以我们需要在方法中获取到body,需要实现赋值,所以我们会这么写

import { Body, Controller, Post } from '@nestjs/common';
​
@Controller('article')
export class ArticleController {@Post('create')create(@Body() body): string {console.log(`文章的标题是:${body?.title}`);return '创建文章成功';}
}


此时,一个最简单的post请求就完成了。

PostMan验证

写完之后,我们需要用postman验证下我们的写法是否正确。

在这里插入图片描述

终端的打印结果如下
在这里插入图片描述

在这里插入图片描述
公众号文章地址

原创不易,求关注~

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

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

相关文章

牛客周赛 Round 34 解题报告 | 珂学家 | 构造思维 + 置换环

前言 整体评价 好绝望的牛客周赛,彻底暴露了CF菜菜的本质,F题没思路,G题用置换环骗了50%, 这大概是唯一的亮点了。 A. 小红的字符串生成 思路: 枚举 a,b两字符在相等情况下比较特殊 a, b input().split() if a b:print (2)print (a)pri…

峰值检测电路

常用的峰值检测电路,如下图所示。 该电路有两种工作状态: 1、充电状态:D2导通,D1截止。 当U1的端比-端大时,V1VIN,VCV1-VD2,VOUTVC。这时,给电容C1充电。由于D1截止没有环路&#…

代码随想录算法训练营第二十三天| 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

文章目录 [1.修剪二叉搜索树(https://leetcode.cn/problems/trim-a-binary-search-tree/description/)2.将有序数组转换为二叉搜索树3.把二叉搜索树转换为累加树 [1.修剪二叉搜索树(https://leetcode.cn/problems/trim-a-binary-search-tree/description/) 遇到超范围节点&…

【Java】线程池总结——干货满满!!!

目录 一 使用线程池的好处 二 Executor 框架 2.1 简介 2.2 Executor 框架结构(主要由三大部分组成) 1) 任务(Runnable /Callable) 2) 任务的执行(Executor) 3) 异步计算的结果(Future) 2.3 Executor 框架的使用示意图 三 (重要)ThreadPoolExecutor 类简单介绍 3.1 Thr…

ASLR 和 PIE

前言 ASLR(Address Space Layout Randomization,地址空间随机化)是一种内存攻击缓解技术,是一种操作系统用来抵御缓冲区溢出攻击的内存保护机制。这种技术使得系统上运行的进程的内存地址无法被预测,使得与这些进程有…

积分商城管理系统的设计与实现

积分商城管理系统的设计与实现 获取源码——》公主号:计算机专业毕设大全

mysql和redis双写一致性策略分析

mysql和redis双写一致性策略分析 一.什么是双写一致性 当我们更新了mysql中的数据后也可以同时保证redis中的数据同步更新; 数据读取的流程: 1.读取redis,如果value!null,直接返回; 2.如果redis中valuenull,读取mysql中数据对应的…

YOLOv9中“CBLinear”的结构!

ADown结构出炉啦,收藏起来写论文用! 1.代码: 代码路径:yolov9-main->models->common.py,代码如下: class CBLinear(nn.Module):def __init__(self, c1, c2s, k1, s1, pNone, g1): # ch_in, ch_outs…

【算法小讲堂】#1 贪心算法

引入——关于贪心算法 我们先来做一个小游戏——现在假设自己是一个小偷,桌上有一些物品,包括一台iPhone15、一个充电宝、一个眼罩和一个溜溜梅。此时,你听说警察即将到来,那么你会先带走哪个东西呢? 一般来讲&#xf…

matlab关键路径的工序安排和dijkstra路径规划

1、内容简介 略 59-可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 matlab关键路径的工序安排和dijkstra路径规划_哔哩哔哩_bilibili 4、参考论文 略

2024 春招市场行情报告:鸿蒙人才遭“爆抢”

前言 2024年可以说是布道鸿蒙开发行业的最佳时机,华为在千帆启航仪式会中发布会中表示,已有200家头部企业加入原生开发当中,并且一直有高薪抢人的局面,这一信息已经引起业界很大关注。 因此有很多公司开始准备要招聘鸿蒙工程师&…

Redis+Caffeine 太强了!二级缓存可以这样实现!

在实际的项目中,我们通常会将一些热点数据存储到Redis或MemCache这类缓存中间件中,只有当缓存的访问没有命中时再查询数据库。 在一些场景下可能还需要进一步配合本地缓存使用,例如Guava cache或Caffeine,从而再次提升程序的响应…