Nest.js是一个基于Node.js的渐进式框架,它利用了TypeScript的强大类型系统和装饰器语法,结合了OOP(面向对象编程)、FP(函数式编程)和FRP(函数响应式编程)的优秀思想,旨在提供一个强大、模块化且高度可伸缩的服务器端开发解决方案。本文将引导你从零开始,搭建一个Nest.js应用,并逐步介绍其核心概念和基本操作,让你快速入门这个充满魅力的框架。
Nest 框架实例下载链接:https://download.csdn.net/download/qq_42072014/89478081
环境准备
- 安装Node.js: 确保你的系统上安装了Node.js(建议使用长期支持版 LTS)。你可以访问 Node.js官方网站 下载安装。
- 安装Nest CLI: Nest.js提供了命令行工具来简化项目创建和管理。通过npm或yarn全局安装:
Bash
1npm install -g @nestjs/cli
2# 或者使用Yarn
3yarn global add @nestjs/cli
创建Nest.js项目
- 初始化项目: 使用Nest CLI创建一个新的Nest应用。在终端中执行以下命令:
Bash
1nest new my-nest-app
这里my-nest-app
是你的项目名称,可以根据喜好更改。
- 进入项目目录:
Bash
1cd my-nest-app
理解项目结构
Nest.js采用模块化的架构,让我们看看主要的目录结构:
src
: 应用的主要源代码目录。app.module.ts
: 应用的根模块,所有其他模块都从这里导入。main.ts
: 应用的启动点。
基本概念
- Module(模块): Nest应用的核心构建块,负责组织相关组件、服务、控制器等。
- Controller(控制器): 负责处理HTTP请求。
- Service(服务): 业务逻辑的容器,通常用来处理数据和逻辑。
- Dependency Injection(依赖注入): Nest内置了强大的依赖注入系统,便于管理组件之间的依赖关系。
开发第一个API
让我们创建一个简单的API,用于返回“Hello World”。
- 生成模块和控制器:
Bash
1nest generate module hello
2nest generate controller hello
这将在src
目录下创建hello
模块和hello.controller.ts
文件。
- 编辑
hello.controller.ts
:
打开hello.controller.ts
,添加一个路由处理器来响应GET请求:
Typescript
1import { Controller, Get, Render } from '@nestjs/common';
2
3@Controller('hello')
4export class HelloController {
5 @Get()
6 async sayHello(): Promise<string> {
7 return 'Hello, world!';
8 }
9}
这里,@Controller('hello')
装饰器指定了控制器处理所有以/hello
开头的请求,而@Get()
装饰器则指定了该方法处理GET请求。
- 启动应用:
回到终端,运行以下命令启动应用:
Bash
1npm run start
2# 或者使用Yarn
3yarn start
默认情况下,应用会在http://localhost:3000
启动。访问http://localhost:3000/hello
,你应该能看到“Hello, world!”。
总结
通过以上步骤,你已经成功创建并运行了你的第一个Nest.js应用。这只是冰山一角,Nest.js的强大在于其深度集成的模块化、依赖注入、中间件、管道、守卫等功能,以及对数据库操作、认证授权、CQRS等高级特性的良好支持。随着项目的深入,你将逐步解锁更多Nest.js的魅力,构建出复杂而优雅的后端服务。继续探索,享受编程的乐趣吧!