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

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

NestJS 服务端开发流程简介

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

一、安装 NestJS CLI

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

bash 复制代码
npm i -g @nestjs/cli

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

bash 复制代码
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 的模块:

bash 复制代码
nest generate module cats

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

2. 创建控制器

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

bash 复制代码
nest generate controller cats

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

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

typescript 复制代码
// 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 数组中:

typescript 复制代码
// src/cats/cats.module.ts
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';

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

四、创建服务

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

bash 复制代码
nest generate service cats

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

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

typescript 复制代码
// src/cats/cats.service.ts
import { Injectable } from '@nestjs/common';

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

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

typescript 复制代码
// 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 数组中:

typescript 复制代码
// 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 能够识别和加载它。

typescript 复制代码
// src/app.module.ts
import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';

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

六、启动应用程序

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

bash 复制代码
npm run start

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

七、总结

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

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

相关推荐
专注API从业者3 分钟前
基于 Flink 的淘宝实时数据管道设计:商品详情流式处理与异构存储
大数据·前端·数据库·数据挖掘·flink
龙在天4 分钟前
H5开发,开发照相机,以及组件封装
前端
曼妥思10 分钟前
PosterKit:跨框架海报生成工具
前端·开源
binqian30 分钟前
【异步】js中异步的实现方式 async await /Promise / Generator
开发语言·前端·javascript
Jerry说前后端39 分钟前
Android 移动端 UI 设计:前端常用设计原则总结
android·前端·ui
熊猫钓鱼1 小时前
基于Trae CN与TrendsHub快速实现的热点百事通
前端·trae
程序媛Dev1 小时前
还在 SSH 连服务器敲 SQL?我用 Sealos 把数据库管理后台搬进了浏览器!
开源·github
林开落L1 小时前
库制作与原理(下)
linux·开发语言·centos·库制作与原理
LIUENG1 小时前
Vue3 响应式原理
前端·vue.js
讨厌吃蛋黄酥1 小时前
前端居中九种方式血泪史:面试官最爱问的送命题,我一次性整明白!
前端·css