iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
0
Modern Web

讀官網文件邊走邊學nest.js系列 第 3

Day3-Module in nest.js

今天的內容參考官網-Modules

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 {}

剩下的明天繼續


上一篇
Day2-使用nest.js CLI建立Hello World專案
下一篇
Day4-Controller in nest.js(上)-Basics
系列文
讀官網文件邊走邊學nest.js31

尚未有邦友留言

立即登入留言