一个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.mzph.cn/news/704317.shtml

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

相关文章

【Java程序员面试专栏 算法思维】四 高频面试算法题:回溯算法

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊回溯算法,主要就是排列组合问题,所以放到一篇Blog中集中练习 题目关键字解题思路时间空间岛屿数量网格搜索分别向上下左右四个方向探索,遇到海洋…

生成式 AI - Diffusion 模型的数学原理(5)

来自 论文《 Denoising Diffusion Probabilistic Model》(DDPM) 论文链接: https://arxiv.org/abs/2006.11239 Hung-yi Lee 课件整理 讲到这里还没有解决的问题是,为什么这里还要多加一个噪声。Denoise模型算出来的是高斯分布的均…

【VTKExamples::PolyData】第三十八期 Outline

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例Outline,并解析接口vtkOutlineFilter,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. Outline // Create…

Sora的潜力与影响:对视频制作、广告、娱乐等行业的深度解析

随着技术的飞速发展,OpenAI推出的Sora模型已经引起了广泛关注。作为一款强大的视频生成工具,Sora不仅改变了视频制作的传统模式,更对广告、娱乐等多个行业产生了深远影响。本文将深度解析Sora的潜力与影响,探讨其在视频制作、广告…

Python自定义logger模块(附Demo)

目录 1. 内置logger2. 自定义logger 1. 内置logger Python标准库中的logging模块提供了日志记录的功能 允许开发者通过创建日志记录器、处理程序和格式化器来控制日志的生成和输出 以下是logging模块的一些主要组件和概念: 日志记录器 (Logger):整个…

Vue(Day01)——第一个Vue程序

直接引用的网址方式&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><script src"https://u…

python opencv鼠标操作图片

目录 一:图片垂直移动 二:图片水平移动 三:图片缩放 鼠标操作函数: 你可以使用 cv2.setMouseCallback() 函数来为一个特定的窗口设置一个鼠标事件回调函数。这样,每当鼠标在该窗口上执行某种动作(如移动、点击、双击等)时,该回调函数就会被调用,并且会传递一些参数…

Canvas动画之豌豆射手

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

linux 面试题

1.linux操作系统的常用指令可以详细说下吗,平常哪些用的比较多 文件目录操作命令: ls cd more cat tail mkdir touch rm rmdir 拷贝复制: cp mv 打包解包压缩解压: tar -z 解亚压缩 -c 打包 -x 解包 -v 显示过程 -f 指定文件名 文本编辑: vi vim 查找: find 查找文件 gre…

Fl Studio 20.9.2.2963 中文破解版2024永久版下载(含Keygen)

FL Studio20.9是一款流行的图像线软件制作和编辑音频文件。作为一款领先的创新产品&#xff0c;该软件能够满足在创作音乐方面的需求。有了这个产品&#xff0c;可以完成制作音乐的整个过程。可以使用这个软件进行写作&#xff0c;编辑&#xff0c;录音&#xff0c;编辑和混合和…

DP读书:《工程热力学(第二版)》(一)绪论——能量及其利用

DP读书&#xff1a;《工程热力学&#xff08;第二版&#xff09;》绪论 0.1 能量及其利用 热力学——研究对象&#xff1a;能量 能量 物质能量传递 普遍规律 能源&#xff1a;直接提供能量的物质资源 一次能源&#xff1a;热能占比85% 直接利用——>冶金、采暖、炊煮 …

第九届蓝桥杯省赛C++ / JAVA A组《航班时间》(c++)

1.题目说明 小 h 前往美国参加了蓝桥杯国际赛。 小 h 的女朋友发现小 h 上午十点出发&#xff0c;上午十二点到达美国&#xff0c;于是感叹到“现在飞机飞得真快&#xff0c;两小时就能到美国了”。 小 h 对超音速飞行感到十分恐惧。 仔细观察后发现飞机的起降时间都是当地…

Linux C 统计函数执行时间

Linux C 统计函数执行时间 代码实现 #include <stdio.h> #include <time.h>int main(void) {clock_t start, end;double cpu_time_used;start clock();/* function to be test here */end clock();cpu_time_used ((double) (end - start)) / CLOCKS_PER_SEC;p…

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(九)NodeJS入门——http模块

060_http模块_网页URL之绝对路径 hello&#xff0c;大家好&#xff0c;这一个小题的话我们来补充一个之前学习过的内容&#xff0c;就是网页当中的URL&#xff0c;咱们这个小题的话主要是来说一下绝对路径&#xff0c;有同学可能会说&#xff0c;这这这&#xff0c;不对劲&…

抽象的后端

Connection refused: no further information 出现这条代码的核心是你使用redis&#xff0c;但是本地没有开启redis服务 如何启动redis服务 第一步&#xff1a;确定你安装了对应的框架 以spring为例 <dependency><groupId>org.springframework.boot</group…

架构设计实践:熟悉架构设计方法论,并动手绘制架构设计图

文章目录 一、架构设计要素1、架构设计目标2、架构设计模式&#xff08;1&#xff09;分而治之&#xff08;2&#xff09;迭代式设计 3、架构设计的输入&#xff08;1&#xff09;概览&#xff08;2&#xff09;功能需求 - WH分析法&#xff08;3&#xff09;质量 - “怎么”分…

代码随想录三刷day09

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣242. 有效的字母异位词二、力扣349. 两个数组的交集三、力扣202. 快乐数 前言 当我们遇到了要快速判断一个元素是否出现集合里的时候&#xff0c;就要考…

数学的维度智慧

1.引入 在生活中&#xff0c;我们常常会提到一维&#xff0c;二维&#xff0c;三维&#xff0c;而按照常识&#xff0c;我们也知道一维指的是线&#xff0c;二维指的是面&#xff0c;三维指的是空间&#xff0c;而引申的四维&#xff0c;便是在空间的维度上添加了时间维度&…

卡玛网● 46. 携带研究材料 ● 01背包问题,你该了解这些! 滚动数组 力扣● 416. 分割等和子集

开始背包问题&#xff0c;掌握0-1背包和完全背包即可&#xff0c;注&#xff1a;0-1背包是完全背包的基础。 0-1背包问题&#xff1a;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求…

Windows计划任务执行日志和文件输出路径修改

在日常工作中&#xff0c;针对需重复执行的操作&#xff0c;通常都会使用系统的任务计划程序功能&#xff1b; 1、大家可以运行中&#xff0c;执行taskschd.msc来调用任务计划程序对话窗口&#xff0c;也可以在服务器管理的-工具菜单中-选择任务计划程序来调用对话窗口。 2、…