如何使用Nest.js和Typescript构建一个简单且可扩展的Web API
在开始学习Nest.js之前,我们推荐先阅读这篇文章:ExpressJS vs NestJS。
为什么要学习Nest.js?
我们有很多服务器端JavaScript框架,那Nest.js有什么特别之处呢?看,有大量的JavaScript库、辅助工具和工具可供Node.js使用,但没有一个能有效解决代码库的维护问题。是的,代码库的维护和服务器性能的维护一样重要。Nest.js在扩展性方面提供了最好的架构。Nest.js非常适合微服务。Nest.js完全支持TypeScript,并且市场上拥有最好的错误处理能力。维护Nest.js应用程序非常轻松!
“Nest提供了一个开箱即用的应用程序架构,使开发人员和团队能够创建高度可测试、可扩展、松耦合和易于维护的应用程序。该架构受到Angular的很大启发。”
让我们开始吧!我们会尽量让本文简短易懂。你可以在本文末尾找到我的GitHub存储库。我们将创建一个 待办事项Web API 来理解Nest.js。
安装:
步骤1: 安装Nest.js非常简单。我们将使用包管理器来安装Nest。
步骤2: 在全局安装Nest之后,我们可以使用下一个命令来创建我们的项目。
步骤3: 要启动应用程序,请输入以下命令。
步骤4: 在 src/ 目录中找到核心文件。成功安装后,您将找到以下文件:
- main.ts
- app.controller.ts
- app.service.ts
- app.module.ts
注意:
- 模块是Nest.js中的基本构建模块。
- Nest.js中的每个模块都包含三个文件:“ controller.ts’,’service.ts”,’module.ts’
- app模块是您的服务器端Nest Web应用程序的根模块,它包含其他模块。
项目结构: 项目应该如下所示:
使用Nest.js和Typescript构建Web API的步骤:
按照以下步骤逐一构建Web API:
步骤1: 使用Nest CLI命令在我们的应用程序中创建Task模块:
在任务文件夹内,您将找到一个类似的根模块文件夹结构。在 ‘task.module.ts’ 文件中,您将找到:
Nest.js 自动为初始开发创建所需的控制器和服务文件。
步骤2: 在 ’/src/Task‘ 目录中创建 ’dtos‘ 文件夹,并添加 ’task.dto.ts‘ 文件。
注意: DTO 是数据传输对象的缩写。为了验证每个请求中的数据,我们需要使用 class-validator 库来创建 DTO。
看下面的代码:
步骤3: 在 ‘task.service.ts’ 文件中添加方法。我们将在服务器上将任务存储在一个数组中,以保持文章的简洁性。
服务包含实现业务逻辑的方法。简单的JavaScript函数负责处理数据的传输和操作。
步骤4: 在’task.controller.ts’文件中添加方法。
控制器是一个简单的类,带有@Controller(‘task’)装饰器,表示它将监听在’/src/Task’端点发出的请求。为了处理不同的HTTP请求方法,NestJS提供了以下方法:@Get、@Post、@Put()、@Delete()、@Patch()。
第五步: 在’/src/Task’文件夹中设置’task.module.ts’文件,并添加提供者和控制器。
步骤6: 在“/src”文件夹中设置“app.module.ts”文件,并导入Task模块。
步骤7: 确保您在“/src/main.ts”中具有类似的代码。这段代码将初始化我们的Web API。
运行应用程序的步骤: 现在我们已经准备好在localhost/3000上运行我们的NestJS web API了: ****
输出: 我们将使用 Postman 测试 Nest.JS 任务 Web API。你可以使用 Postman 进行测试,或者在浏览器中打开 URL 进行测试。
1. 在 Postman 中,按照下面的示例,向端点‘http://localhost:3000/task’ 发送 POST 请求:
2. 在Postman中通过GET请求访问端点‘http://localhost:3000/task/1’,如下所示:
希望您喜欢这篇文章,您可以在 GitHub 代码库中查看代码。