Nest.js学习之路(3)-Module in nest.js

Nest.js应用程序的组成

  • Modules
  • Controllers
  • Providers
    • Services
    • Pipes
    • Guards
    • Interceptors
    • ...

一个Module底下包含一个或多个Controllers或Providers。

nest.js里是用Module来建构应用程式架构,任何nest.js的应用程式一定至少要有一个Root Module,在CLI产生的程式码里为ApplicationModule,透过nest.js提供的Factory Method建立应用程式的实例(Instance)从main.ts程式码中可以看到

import { NestFactory } from '@nestjs/core';
import { ApplicationModule } from './app.module';

async function bootstrap() {
    //NestFactory.create工厂方法载入Root Module,该方法回传nest应用程式物件(实作INestApplication介面)
  const app = await NestFactory.create(ApplicationModule);
  await app.listen(3000);
}
//启动nest应用程式
bootstrap();

依据功能(Feature)需求建立其他Module,例如User Module用来处理使用者资料、Auth Module处理使用者验证等。

Module通常是一个Class并宣告@Module Decorator,指定哪些Controller及Provider在这个Module使用,通常通一个Controller及Provider不能指定给多个Module。

//app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

你可能感兴趣的:(Nest.js学习之路(3)-Module in nest.js)