返回

Nest.js:初学者指南:快速掌握 CRUD 操作

前端

为什么要使用 NestJS?

NestJS 是一个流行的 Node.js 框架,用于构建可扩展的、可维护的应用程序。它基于 TypeScript,并遵循面向对象(OOP)和函数式编程 (FP) 原则。NestJS 提供了一系列工具和功能来简化你的开发过程,例如:

  • 模块化体系结构:NestJS 采用模块化体系结构,使你可以将你的应用程序划分为更小、更易于管理的模块。这有助于提高你的应用程序的可扩展性和可维护性。
  • 依赖注入:NestJS 具有内置的依赖注入 (DI) 系统,可帮助你管理应用程序中的依赖关系。这有助于提高你的应用程序的可测试性和可重用性。
  • 内置中间件:NestJS 内置了许多中间件,你可以使用它们来处理常见的任务,例如日志记录、身份验证和错误处理。这有助于减少你编写样板代码的时间,并使你的应用程序更加健壮。
  • 测试支持:NestJS 提供了全面的测试支持,使你可以轻松测试你的应用程序。这有助于你捕获错误并确保你的应用程序按预期运行。

创建 NestJS 项目

要创建一个 NestJS 项目,你可以使用 NestJS CLI 工具。CLI 工具是一个命令行工具,可帮助你快速轻松地创建和管理 NestJS 项目。要安装 NestJS CLI 工具,请运行以下命令:

npm install -g @nestjs/cli

安装 NestJS CLI 工具后,你可以使用它来创建新的 NestJS 项目。要创建一个新的 NestJS 项目,请运行以下命令:

nest new my-nest-app

这将在你的当前目录中创建一个名为 my-nest-app 的新 NestJS 项目。

构建 CRUD 应用程序

现在你已经创建了一个 NestJS 项目,让我们开始构建一个 CRUD 应用程序。我们将使用 MongoDB 作为我们的数据库。

安装 MongoDB

首先,我们需要安装 MongoDB。要安装 MongoDB,请访问 MongoDB 网站并下载适用于你操作系统的 MongoDB 版本。

安装 MongoDB 后,请启动 MongoDB 服务器。要在 Windows 上启动 MongoDB 服务器,请打开命令提示符并运行以下命令:

mongod

要在 Mac 或 Linux 上启动 MongoDB 服务器,请打开终端并运行以下命令:

mongod --fork --logpath /var/log/mongodb/mongodb.log

创建 MongoDB 数据库

现在我们已经安装并启动了 MongoDB 服务器,我们需要创建一个数据库。要创建数据库,请打开 MongoDB Shell 并运行以下命令:

use my-nest-app

这将创建一个名为 my-nest-app 的新数据库。

创建 NestJS 模块

现在我们已经创建了一个 MongoDB 数据库,我们需要创建一个 NestJS 模块来与数据库交互。要创建模块,请在项目目录中运行以下命令:

nest generate module user

这将在项目目录中创建一个名为 user 的新模块。

创建 NestJS 服务

现在我们已经创建了一个 NestJS 模块,我们需要创建一个 NestJS 服务来处理与数据库的交互。要创建服务,请在 user 模块目录中运行以下命令:

nest generate service user

这将在 user 模块目录中创建一个名为 user.service.ts 的新服务。

创建 NestJS 控制器

现在我们已经创建了一个 NestJS 服务,我们需要创建一个 NestJS 控制器来处理来自客户端的请求。要创建控制器,请在 user 模块目录中运行以下命令:

nest generate controller user

这将在 user 模块目录中创建一个名为 user.controller.ts 的新控制器。

实现 CRUD 操作

现在我们已经创建了 NestJS 模块、服务和控制器,我们需要实现 CRUD 操作。

创建

要实现创建操作,请在 user.controller.ts 文件中添加以下代码:

@Post()
async create(@Body() createUserDto: CreateUserDto) {
  return this.userService.create(createUserDto);
}

这将创建一个新的路由,该路由将处理来自客户端的 POST 请求。该路由将调用 userServicecreate() 方法来创建新的用户。

读取

要实现读取操作,请在 user.controller.ts 文件中添加以下代码:

@Get()
async findAll() {
  return this.userService.findAll();
}

这将创建一个新的路由,该路由将处理来自客户端的 GET 请求。该路由将调用 userServicefindAll() 方法来获取所有用户。

更新

要实现更新操作,请在 user.controller.ts 文件中添加以下代码:

@Put(':id')
async update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) {
  return this.userService.update(id, updateUserDto);
}

这将创建一个新的路由,该路由将处理来自客户端的 PUT 请求。该路由将调用 userServiceupdate() 方法来更新现有用户。

删除

要实现删除操作,请在 user.controller.ts 文件中添加以下代码:

@Delete(':id')
async delete(@Param('id') id: string) {
  return this.userService.delete(id);
}

这将创建一个新的路由,该路由将处理来自客户端的 DELETE 请求。该路由将调用 userServicedelete() 方法来删除现有用户。

运行应用程序

现在我们已经实现了 CRUD 操作,我们可以运行应用程序。要运行应用程序,请在项目目录中运行以下命令:

npm run start

这将启动 NestJS 应用程序。应用程序启动后,你可以使用浏览器访问 http://localhost:3000 来查看应用程序。

结论

在本文中,我们带领你踏上 NestJS 之旅,并向你展示了如何使用 NestJS 构建一个完整的 CRUD 应用程序。我们涵盖了从设置 NestJS 项目到使用 MongoDB 数据库进行数据持久化的所有内容。你学习了如何使用 NestJS 的内置工具和功能来简化你的开发过程,并创建健壮且可扩展的应用程序。