Nest.js上车指南 — 接口的创建

777 阅读3分钟

大家好啊,我是青晚舟,上个文章给大家分享了关于怎么初始化一个Nest项目,那么这篇就是给大家分享下Nest.js中接口的简单创建 Nest中文文档可以点击这

1.创建接口之前的准备

我们在上篇文章中已经创建好了项目,并且项目中自带了一个接口返回给了我们一个 'Hello World!',这篇文章主要就是分享下接口的基本创建,在创建接口之前首先我们了解下创建一个接口的基本文件,共有三个文件

image.png

其中Controller 用于处理客户端 HTTP 请求并返回响应。它负责提取传入的请求参数,并将请求转发到相应的服务 (Service) 中。可以将它看作是应用程序的用户界面部分,负责定义路由、Request 和 Response 的逻辑以及对传入请求进行验证。简单来说,Controller 就是一个路由请求的入口。

module 模块是应用程序的一部分,具有独立的代码库、路由器和服务集。模块用于组织应用程序,使原有的一个庞大的应用分解为多个可重用的模块。因此,模块就是应用程序的一个子系统,是一组相关的功能的集合。

service 层是 Nest 中最常用的层,它负责处理业务逻辑、封装持久层、以及与数据库等的交互。Service 通过 @Injectable 装饰器注明它是一个提供商,其他模块中的组件可以通过构造函数注入到 Service 中。Service 通常定义了一个与 Controller 相对应的实体,用于处理应用程序的具体业务逻辑。

nestjs 还是一个spring MVC 的风格 其中有依赖注入 IOC 控制反转 都是借鉴了Angualr 所以Nest也被称为SpringJS,后续会专门分享一篇关于这三个文件的一个设计理念的文章

2.创建一个接口

我们刚刚在app.controller 创建了一个路由 定义了路由的名称为new,并调用了newInterface这个方法 image.png 并且在service文件实现了newInterface方法 image.png 这个时候我们访问http://localhost:3000/api/new 地址就会得到我们刚刚定义的数据 image.png

上面的方法是一个不加任何参数的接口,假如现在我们需要获取前端传递过来的参数应该怎么写, 这是我们在new下面新建的一个路由,可以看到跟new路由不同的是我们首先在页头进入了一个Query,并在路由中使用了这个装饰器@Query(),他的作用就是可以帮助我们获取到GET 请求中的参数

image.png image.png 我们通过http://localhost:3000/api/newQuery?ids=1&idd=11 对newQuery进行接口请求并到服务端打印query后得到

image.png 由此可见我们确实拿到了接口请求的参数。下面是我总结的更多装饰器的作用。 image.png

👋 写在最后

希望大家可以给笔者点个 star!文章更新不迷路!