ReactPress系列—NestJS 服务端开发流程简介

时间:2024-11-07 21:56:22

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,感谢Star。

在这里插入图片描述

NestJS 服务端开发流程简介

NestJS 是一个用于构建高效、可靠和可扩展的服务器端应用程序的框架。它使用 TypeScript(但也支持纯 JavaScript)并完全基于 Node.js。NestJS 提供了强大的架构支持,允许开发者使用现代 JavaScript 的特性来编写清晰、可维护的代码。本文将介绍 NestJS 服务端开发的基本流程,并通过简单的代码示例来帮助理解。

一、安装 NestJS CLI

首先,你需要安装 NestJS 的命令行工具(CLI),这将简化项目的创建和管理过程。

npm i -g @nestjs/cli

安装完成后,你可以使用 nest 命令来创建一个新的 NestJS 项目。

nest new my-nest-project

这将创建一个名为 my-nest-project 的新文件夹,并在其中初始化一个 NestJS 项目。

二、项目结构

NestJS 项目通常具有以下结构:

my-nest-project/
├── node_modules/
├── src/
│   ├── app.controller.ts
│   ├── app.module.ts
│   ├── app.service.ts
│   └── ... (其他文件和文件夹)
├── package.json
├── tsconfig.json
└── ... (其他配置文件)

src 文件夹包含应用程序的源代码。其中,app.module.ts 是应用程序的根模块,app.controller.tsapp.service.ts 分别包含控制器和服务的基本示例。

三、创建模块和控制器

在 NestJS 中,模块是组织代码的基本单位。每个模块都有一个与之关联的模块类,该类使用 @Module 装饰器进行装饰。

1. 创建模块

你可以使用 NestJS CLI 来创建一个新模块。例如,创建一个名为 cats 的模块:

nest generate module cats

这将在 src 文件夹中创建一个 cats 文件夹,并在其中生成一个 cats.module.ts 文件。

2. 创建控制器

控制器负责处理传入的请求并返回响应。你可以使用以下命令来创建一个新的控制器:

nest generate controller cats

这将在 cats 文件夹中生成一个 cats.controller.ts 文件。

下面是一个简单的控制器示例,它定义了一个 GET 端点来返回所有猫的信息:

// src/cats/cats.controller.ts
import { Controller, Get } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(): string {
    return 'This action returns all cats';
  }
}

3. 将控制器添加到模块中

为了使控制器能够响应请求,你需要将它添加到模块的 controllers 数组中:

// src/cats/cats.module.ts
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';

@Module({
  controllers: [CatsController],
})
export class CatsModule {}

四、创建服务

服务通常用于封装业务逻辑。你可以使用以下命令来创建一个新的服务:

nest generate service cats

这将在 cats 文件夹中生成一个 cats.service.ts 文件。

下面是一个简单的服务示例,它提供了一个方法来获取所有猫的信息:

// src/cats/cats.service.ts
import { Injectable } from '@nestjs/common';

@Injectable()
export class CatsService {
  findAll(): string[] {
    return ['cat1', 'cat2', 'cat3'];
  }
}

然后,你可以将服务注入到控制器中,并使用它来处理请求:

// src/cats/cats.controller.ts
import { Controller, Get, Inject } from '@nestjs/common';
import { CatsService } from './cats.service';

@Controller('cats')
export class CatsController {
  constructor(private readonly catsService: CatsService) {}

  @Get()
  findAll(): string[] {
    return this.catsService.findAll();
  }
}

不要忘记在模块中将服务添加到 providers 数组中:

// src/cats/cats.module.ts
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';

@Module({
  controllers: [CatsController],
  providers: [CatsService],
})
export class CatsModule {}

五、将模块添加到根模块中

最后,你需要将新创建的 CatsModule 添加到应用程序的根模块中,以便 NestJS 能够识别和加载它。

// src/app.module.ts
import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';

@Module({
  imports: [CatsModule],
})
export class AppModule {}

六、启动应用程序

现在,你可以启动 NestJS 应用程序了。在项目根目录中运行以下命令:

npm run start

应用程序启动后,你可以打开浏览器并访问 http://localhost:3000/cats,你应该会看到返回的所有猫的信息。

七、总结

本文介绍了 NestJS 服务端开发的基本流程,包括安装 NestJS CLI、创建项目、创建模块和控制器、创建服务以及将模块添加到根模块中。通过简单的代码示例,希望能够帮助你快速上手 NestJS 并构建自己的服务器端应用程序。

更多关于NestJS的服务端开发流程可以参考:https://docs.nestjs.com/