初识nest.js的controller(入门)

文章介绍了NestJS框架中的控制器概念,如何创建和使用控制器处理HTTP请求,包括GET、POST、PATCH、DELETE等方法,以及通过装饰器指定路由和参数。同时,讨论了HTTP状态码的设置,推荐使用@HttpCode装饰器,但提到也可直接操作Express的响应对象,尽管这可能影响到NestJS的特性和兼容性。
摘要由CSDN通过智能技术生成

认识controller

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

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

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

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

 

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

学习基本请求方式

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

 

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

用apiFox测试一下

get请求 

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

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

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

 

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

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

 

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

 

 常见的请求就以上这些了

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

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

 

 

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

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

 

 

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

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值