第六部分:第一节 - NestJS 初体验:搭建企业级厨房骨架

NestJS 是一个用于构建高效、可伸缩的 Node.js 服务器端应用的框架。它使用了渐进式的 JavaScript (以及完全支持 TypeScript) 并结合了面向对象编程 (OOP)、函数式编程 (FP) 和响应式编程 (RP) 的元素。NestJS 受 Angular 框架启发很大,引入了模块、控制器、服务(提供者)、依赖注入等概念,为 Node.js 应用提供了一个开箱即用的、良好定义的架构。

为什么选择 NestJS?

  1. 提供了良好的架构模式: NestJS 强制或鼓励你遵循模块化、分层设计的原则,这解决了纯 Node.js 或 Express 项目在规模增大后代码变得混乱的问题。就像中央厨房有明确的区域划分(冷菜区、热菜区、甜点区)。
  2. 基于 TypeScript 构建: 默认使用 TypeScript,让你在后端开发中也能享受到静态类型带来的安全性和开发效率提升。整个厨房的配料、工具都有明确的标签和用途说明。
  3. 开箱即用: 内置了许多常用的功能和工具,比如配置管理、验证、日志、ORM/ODM 集成等,减少了你需要手动集成第三方库的工作量。厨房里各种自动化设备和标准工具已经配齐。
  4. 强大的 CLI 工具: Nest CLI (Command Line Interface) 是一个命令行工具,可以快速生成各种 NestJS 项目文件(模块、控制器、服务等),大大提高了开发效率。就像拥有了一套快速搭建标准厨房工位的工具。
  5. 良好的生态系统: NestJS 社区活跃,有丰富的文档和第三方模块。

Node.js 版本要求:

NestJS 通常要求较新版本的 Node.js。在开始之前,请确保你的 Node.js 版本符合 NestJS 的要求(通常是 10.13.0 或更高版本)。你可以运行 node -v 来检查版本。

在这里插入图片描述

安装 Nest CLI:

Nest CLI 是我们创建和管理 NestJS 项目的主要工具。通过 npm 或 yarn 全局安装它:

npm install -g @nestjs/cli
# 或者使用 yarn
# yarn global add @nestjs/cli

在这里插入图片描述

安装完成后,你就可以在终端使用 nest 命令了。

创建第一个 NestJS 项目:

使用 Nest CLI 创建一个新项目非常简单:

nest new my-nestjs-app

在这里插入图片描述

CLI 会询问你使用 npm 还是 yarn 作为包管理器。选择一个后,CLI 会自动创建一个新的项目目录 my-nestjs-app,下载所有必需的依赖,并生成项目的基本结构。

创建完成后,进入项目目录:

cd my-nestjs-app

在这里插入图片描述

启动应用:

npm run start:dev
# 或者 yarn start:dev

在这里插入图片描述

这会启动一个开发服务器,通常在 http://localhost:3000。在浏览器中访问这个地址,你会看到 “Hello World!”。
在这里插入图片描述

项目结构概览:

使用 CLI 创建的项目会生成以下主要文件和目录:

my-nestjs-app/
├── src/             // 源代码目录
│   ├── app.controller.spec.ts // 根控制器单元测试文件
│   ├── app.controller.ts  // 根控制器 - 处理基本请求
│   ├── app.module.ts      // 根模块 - 组织应用的基本单元
│   ├── app.service.ts     // 根服务 (提供者) - 处理业务逻辑
│   └── main.ts            // 应用的入口文件 - 启动 NestJS 应用
├── test/            // 端到端测试目录
├── .eslintrc.js     // ESLint 配置
├── .gitignore       // Git 忽略文件
├── .prettierrc      // Prettier 配置
├── nest-cli.json    // Nest CLI 配置
├── package.json     // 项目配置和依赖
├── README.md        // 项目说明
└── tsconfig.json    // TypeScript 配置
  • main.ts: 应用的入口点,使用 NestFactory.create() 创建应用实例并监听端口。
  • app.module.ts: 根模块 (AppModule)。模块是组织应用的基本单位,它定义了应用的不同部分(控制器、提供者)以及它们之间的关系。
  • app.controller.ts: 根控制器 (AppController)。控制器负责处理进来的请求并返回响应。
  • app.service.ts: 根服务 (AppService)。服务通常用于处理业务逻辑、数据访问等。

小例子:探索默认项目

打开 src/app.controller.ts,你会看到一个简单的控制器:

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

@Controller() // 控制器装饰器,可以指定路由前缀,这里没有指定
export class AppController {
  constructor(private readonly appService: AppService) {} // 通过构造函数注入 AppService

  @Get() // HTTP 方法装饰器,处理 GET 请求到根路径
  getHello(): string {
    return this.appService.getHello(); // 调用 Service 的方法
  }
}

在这里插入图片描述

打开 src/app.service.ts

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

@Injectable() // 标记为一个可注入的提供者
export class AppService {
  getHello(): string {
    return 'Hello World!'; // 简单的业务逻辑
  }
}

在这里插入图片描述

这里已经展示了 NestJS 的核心概念:

  • 装饰器 (@Controller, @Get, @Injectable): 用于为类或方法添加元数据,告诉 NestJS 它们扮演什么角色。
  • 依赖注入 (DI):AppController 的构造函数中,NestJS 自动提供了 AppService 的实例。控制器不需要知道如何创建 AppService,只需要声明它需要一个 AppService,NestJS 会负责“注入”进来。

小结: NestJS 是一个提供良好架构和开发模式的 Node.js 框架,特别适合构建大型应用。Nest CLI 是快速创建和管理项目的利器。NestJS 项目由模块、控制器、服务等核心构建块组成,并广泛使用装饰器和依赖注入。

练习:

  1. 使用 Nest CLI 创建一个新的 NestJS 项目,命名为 my-backend
  2. 进入项目目录,运行 npm run start:devyarn start:dev 启动应用,并在浏览器中访问确认。
  3. 打开 src/app.service.ts,修改 getHello() 方法,返回一个不同的字符串,比如 “欢迎来到我的 NestJS 应用!”。
  4. 保存文件,由于 start:dev 使用了文件监听,应用会自动重启。刷新浏览器,确认修改生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低代码布道师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值