在 Nest.js 中书写 JavaScript 的简单指南
2023-09-04 06:19:39
Nest.js 初探:踏上 Node.js 服务器框架实践之路
随着 Typescript 基础的掌握,我们迫不及待地踏上实践之旅。Nest.js 作为一款颇受欢迎的 Node.js 服务器框架,将陪伴我们探索服务器端开发的奥秘。
初识 Nest.js
Nest.js 是一个为 TypeScript 而设计的 Node.js 框架,它遵循流行的模型-视图-控制器 (MVC) 架构。它提供了一系列强大的功能,使开发人员能够创建可扩展、可测试和可维护的应用程序。
安装 Nest.js
要安装 Nest.js,请运行以下命令:
npm install -g @nestjs/cli
nest new my-nest-app
创建一个控制器
控制器处理客户端请求并协调应用程序的业务逻辑。在 Nest.js 中,控制器由带 @Controller 装饰器的类定义。例如,以下控制器负责处理用户:
import { Controller, Get, Post, Body } from '@nestjs/common';
@Controller('users')
export class UsersController {
@Get()
findAll() {
// ...
}
@Post()
create(@Body() userDto: UserDto) {
// ...
}
}
创建服务
服务层负责应用程序的业务逻辑。它们被控制器注入并用于执行特定的任务。例如,以下服务负责处理用户数据库操作:
import { Injectable } from '@nestjs/common';
@Injectable()
export class UsersService {
findAll() {
// ...
}
create(userDto: UserDto) {
// ...
}
}
依赖注入
Nest.js 提供了依赖注入机制,使你可以轻松访问服务和存储库。通过在控制器或服务构造函数中使用 @Inject 装饰器,你可以注入所需的依赖项。例如:
import { Controller, Get, Inject } from '@nestjs/common';
import { UsersService } from './users.service';
@Controller('users')
export class UsersController {
constructor(@Inject(UsersService) private usersService: UsersService) {}
@Get()
findAll() {
return this.usersService.findAll();
}
}
路由
Nest.js 使用路由表来定义应用程序的端点。路由表在 main.ts 文件中定义,它告诉框架如何将请求映射到控制器和方法。例如:
import { Controller, Get } from '@nestjs/common';
import { AppController } from './app.controller';
import { UsersController } from './users.controller';
@Controller()
export class AppController {
constructor() {}
@Get()
root(): string {
return 'Hello World!';
}
}
测试
Nest.js 提供了全面的测试套件,使你能够轻松测试应用程序。测试文件通常放置在 test 目录中,它们使用 NestJS Test Framework 进行编写。例如:
import { Test, TestingModule } from '@nestjs/testing';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';
describe('UsersController', () => {
let controller: UsersController;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [UsersController],
providers: [UsersService],
}).compile();
controller = module.get<UsersController>(UsersController);
});
it('should be defined', () => {
expect(controller).toBeDefined();
});
});
结论
Nest.js 是一个强大的 Node.js 框架,它使开发人员能够轻松创建可扩展、可测试和可维护的应用程序。通过遵循本文中概述的基本步骤,你可以快速入门并开始使用 Nest.js 构建自己的应用程序。随着你对框架了解的加深,你可以探索它的高级功能,例如模块、守卫和过滤器,以创建更加复杂和健壮的应用程序。