NestJS是一个基于Node.js的开发框架,它使用装饰器来增强应用程序的功能和可读性。装饰器是一种特殊的语法,可以附加元数据或修改类、方法、属性等的行为。
首先我们来创建一个新的项目:
nest new all-decorator -p npm
1、nest 最常用装饰器
- @Module():用于定义一个模块,并指定模块的元数据。
- @Controller():用于定义一个控制器,并标识其为一个控制器类。
- @Injectable():用于将一个类标记为可被注入的服务。
- @Inject():用于在服务类中注入其他依赖。
- @Global():用于将模块定义为全局模块,使得该模块中的提供者在整个应用程序中可见。
- @Catch():用于定义一个异常过滤器,用于捕获和处理应用程序中的异常。
- @UseFilters():用于将一个或多个异常过滤器应用于控制器或处理程序。
- @UseGuards():用于将一个或多个守卫应用于控制器或处理程序。
- @UseInterceptors():用于将一个或多个拦截器应用于控制器或处理程序。
- @UsePipes():用于将一个或多个管道应用于控制器或处理程序。
1、@Module
@Module() - 定义一个模块类,用于组织应用程序的不同部分。
可以看到我们新创建的项目就有一个模块
2、@Controller
@Controller() - 定义一个控制器类,用于处理HTTP请求
3、@Injectable
@Injectable() - 定义一个可注入的服务类,用于提供业务逻辑
4、@Inject()
@Inject() - 用于在服务类中注入其他依赖
import {
Controller, Get, Inject } from '@nestjs/common';
import {
AppService } from './app.service';
@Controller()
export class AppController {
// constructor(private readonly appService: AppService) {}
@Inject(AppService)
private readonly appService: AppService;
@Get()
getHello(): string {
return this.appService.