Nest
是一个用于构建高效、可扩展的 Node.js
服务器端应用程序的框架。
Nest 还非常适合应用 N 层架构,旨在将应用程序划分为逻辑层。层是一种分离职责和管理依赖关系以实现关注点分离 (SoC) 原则的方法。为了实现这一目标,Nest 建议调用控制器内的服务层,并在这些服务层内执行所有业务逻辑。对于服务层,调用另一个层称为存储库层,该层负责数据访问。因此,我们将我们的关注点分为三层。分离这些层可以为软件提供可重用性和可维护性。它还使我们的应用程序易于测试,
我们创建的cat路由,它可能看起来像这样:
CatController -> CatService -> CatRepository
cats.controller.ts 文件内容
import { Controller, Get, Post } from '@nestjs/common';
import { CatService } from './cat.service';
@Controller('cat')
export class CatController {
constructor(private readonly catService: CatService) {}
@Get()
getCats() {
return this.catService.findAll();
}
@Post('create')
create() {
return 'Create New Cat!';
}
}
在 Nest 中,可以通过在要注入的模块顶部添加 Injectable 装饰器来使用依赖注入
cats.service.ts 文件内容:
import { Injectable } from '@nestjs/common';
@Injectable()
export class CatService {
findAll() {
return 'Hello World';
}
create() {
return 'Create New Cat!';
}
}
项目目录结构
project-root/
│
├── src/
│ ├── app.module.ts // 应用程序的主模块
│ └── cats/ // Cats模块的目录
│ ├── cats.controller.ts // Cats控制器
│ ├── cats.module.ts // Cats模块
│ ├── cats.service.ts // Cats服务
│ └── dto/ // 数据传输对象目录
│ ├── create-cat.dto.ts // 创建Cat的DTO
│ └── update-cat.dto.ts // 更新Cat的DTO
│
├── test/ // 测试目录(可选)
│ ├── cats/ // Cats模块的测试
│ │ ├── cats.controller.spec.ts
│ │ └── cats.service.spec.ts
│ └── app.e2e-spec.ts // 端到端测试
│
├── .gitignore // Git忽略文件配置
├── nest-cli.json // Nest CLI配置文件
├── package.json // Node.js项目的配置文件
├── README.md // 项目说明文件
├── tsconfig.json // TypeScript配置文件
└── ...
参考文章:
Comments NOTHING