初识nest.js的controller(入门)

简介: 初识nest.js的controller(入门)

认识controller

controller是带有单个路由的基本控制器, 负责处理传入请求并将响应返回给客户端。


image.png


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


为了创建一个基本的控制器,我们使用类和装饰器。装饰器将类与所需的元数据相关联,并使 Nest 能够创建路由映射(将请求绑定到相应的控制器)。


首先让我们来利用nest g co 'xxx'命令来创建一个基本控制器,创建的controller在src下面指定的文件夹中


image.png

image.png


我们可以看到他是用了一个controller装饰器来指定创建的类是一个控制器,而路由地址就是装饰器中内容。


学习基本请求方式

在正常项目中,逻辑代码是写在service中,controller通过不同的请求方式来进行调用,作为初学,我们大可写在controller中,让我们为控制器中加上一些基本的请求吧


image.png


常用的get post patch delete几种请求方式,在nest.js中都已经为我们内置好了,只需要在@nest/common引入相应的装饰器即可,我们可以看出,每个请求函数都为其定制好了请求方式


用apiFox测试一下


get请求


image.png


我们也可以获取某一用户数据 设置动态路由即可


image.png


其指定了parma装饰器,能够获取parmas参数


另外我们也可以指定二级路由

image.png

image.png


post请求 我们为其指定了body装饰器,能够获取请求体中的东西


image.png


patch请求,用于更新数据 为其指定了parma装饰器,能够获取parmas参数

image.png


我们也可以指定装饰器的参数

image.png


image.png


常见的请求就以上这些了


下面是关于http状态码的一些注意事项

image.png


我们可以用@HttpCode这个装饰器 以及HttpStatus指定状态码


image.png


正常post成功后返回201,而我们指定了ok就是200了


另外我们还可以用nest底层所依赖的express来指定状态码


image.png


image.png


虽然这种方法也可以,并且灵活,但是在头操作,库特定功能的时候要小心使用,缺点在于,失去了依赖于nest标准响应式处理的nest功能兼容性 比如拦截器(nest后面的知识)和 HttpCode这样的装饰器 当操作底层代码时,会更依赖于平台,不同的库在响应对象的操作api可能不同 并且我们在使用时还需要模拟对应的响应对象 所以在处理响应时优先选择nest的标准方法

相关文章
|
1月前
|
JavaScript API 图形学
一个案例带你从零入门Three.js,深度好文!
【8月更文挑战第1天】本教程无需任何Threejs知识!本教程以入门为主,带你快速了解Three.js开发
63 2
一个案例带你从零入门Three.js,深度好文!
|
4月前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】JavaScript基础入门:变量、数据类型与运算符
【4月更文挑战第30天】本文介绍了JavaScript的基础知识,包括变量(var、let、const)、数据类型(Number、String、Boolean、Undefined、Null及Object、Array)和运算符(算术、赋值、比较、逻辑)。通过实例展示了如何声明变量、操作数据类型以及使用运算符执行数学和逻辑运算。了解这些基础知识对初学者至关重要,是进阶学习JavaScript的关键。
37 0
|
1月前
|
JavaScript 前端开发 NoSQL
使用Node.js进行后端开发入门
【8月更文挑战第10天】恭喜你完成了Node.js后端开发的入门之旅!这只是个开始,Node.js的世界远比这广阔。随着你对Node.js的深入学习和实践,你将能够构建更复杂、更强大的后端应用。不断探索、学习和实践,你将在Node.js的道路上越走越远。
|
1月前
|
Web App开发 JavaScript 前端开发
Node.js 入门
【8月更文挑战第4天】Node.js 入门
52 1
|
2月前
|
SQL 前端开发 JavaScript
前端三剑客之JavaScript基础入门
前端三剑客之JavaScript基础入门
|
3月前
|
XML JSON 前端开发
JavaScript入门宝典:核心知识全攻略(下)
JavaScript入门宝典:核心知识全攻略(下)
|
3月前
|
JavaScript 前端开发 UED
JavaScript入门宝典:核心知识全攻略(上)
JavaScript入门宝典:核心知识全攻略(上)
|
3月前
|
JavaScript
three.js入门第一个案例
three.js入门第一个案例
|
4月前
|
JavaScript
学习Node.js入门范例
然后,cmd中运行命令node E:/Test/server.js
35 2
|
3月前
|
缓存 前端开发 JavaScript
【JavaScript】JavaScript 中的闭包:从入门到精通
【JavaScript】JavaScript 中的闭包:从入门到精通
82 0