Nest 实践(一)
为什么说 NestJS 是 Node 世界的 Spring?
它们思想几乎一样:
| Spring | NestJS |
|---|---|
| Controller | Controller |
| Service | Service |
| Module | Module |
| IOC | DI |
| 注解 | 装饰器 |
| 分层 | 分层 |
意义:
Node 第一次有了真正的“企业级框架标准”
NestJS 适合什么场景?
✅ 中大型项目
✅ 企业后台系统
✅ 微服务
✅ 团队协作
✅ 长期维护
✅ 架构规范要求高
不适合:
❌ 小脚本
❌ 极简 API
❌ 快速临时服务
NestJS 的核心理念
1️⃣ 分层架构(像 Spring)
Controller → Service → Module → Repository例子:
ts
@Controller("users")
export class UserController {
constructor(private userService: UserService) {}
@Get()
findAll() {
return this.userService.findAll();
}
}2️⃣ 依赖注入(DI)
ts
constructor(private userService: UserService) {}你不用自己 new 对象,框架帮你管理生命周期。
意义:
解耦、可测试、可维护
3️⃣ 强类型(TypeScript)
- 编译期发现错误
- IDE 自动补全
- 企业更安全
4️⃣ 模块化(Module)
UserModule
AuthModule
OrderModule像拼积木一样搭系统。
安装使用步骤
(一)安装运行的步骤
- 初始化项目
bash
$ npm i -g @nestjs/cli
$ nest new project-name
- 启动项目
bash
$ cd project-name
$ npm run start修改端口为:3333
运行项目后,访问 http://localhost:3333
访问 http://localhost:3333
- 创建模块
bash
$ nest generate module user- 创建控制器
bash
$ nest generate controller user- 创建服务
bash
$ nest generate service user- 创建 DTO
bash
$ nest generate class user.dto

注意
通过以上命令生成的文件是空的模版文件,需要手动增加/修改代码逻辑。
(二)生成带有默认代码逻辑的文件
如果要想直接生成默认带有代码逻辑的文件,可以使用以下命令:
bash
# 注意这里的 `resource`
$ nest generate resource users



(三)修改代码逻辑(Mock 数据)
- 修改
users.service.ts
typescript
import { Injectable } from "@nestjs/common";
import { CreateUserDto } from "./dto/create-user.dto";
import { UpdateUserDto } from "./dto/update-user.dto";
@Injectable()
export class UsersService {
create(createUserDto: CreateUserDto) {
return "This action adds a new user";
}
findAll() {
// 2. 返回Mock数据
return [
{
id: 1,
name: "John Doe",
email: "john.doe@example.com",
},
{
id: 2,
name: "Jane Doe",
email: "jane.doe@example.com",
},
];
// 1. 注释原有代码逻辑
// return `This action returns all users`;
}
findOne(id: number) {
return `This action returns a #${id} user`;
}
update(id: number, updateUserDto: UpdateUserDto) {
return `This action updates a #${id} user`;
}
remove(id: number) {
return `This action removes a #${id} user`;
}
}(四)重新启动服务
bash
$ npm run start得到 Mock 数据的展示效果




