精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

【NestJS系列】核心概念:Module模塊

開發 前端
如果你想把當前模塊的service暴露給其它模塊使用,則可以使用exports到處該服務,比如我使用nest g resource info新建了一個info類,并且使用export導出該服務。

前言

模塊指的是使用@Module裝飾器修飾的類,每個應用程序至少有一個模塊,即「根模塊」。根模塊是Nest用于構建應用程序的起點,理論上Nest程序可能只有根模塊,但在大多數情況下是存在多個模塊的,每個模塊各自封裝一組相關的功能。

圖片圖片

@Module裝飾器

@Module()裝飾器可以傳入一個對象,屬性值如下:

providers

將由 Nest 注入器實例化的提供程序,并且至少可以在該模塊中共享

controllers

該模塊中定義的必須實例化的控制器集

imports

導入模塊的列表,導出該模塊所需的提供程序

exports

該子集providers由該模塊提供,并且應該在導入該模塊的其他模塊中可用

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

模塊共享

如果你想把當前模塊的service暴露給其它模塊使用,則可以使用exports到處該服務

比如我使用nest g resource info新建了一個info類,并且使用export導出該服務

// info.module.ts
import { Module } from '@nestjs/common';
import { InfoService } from './info.service';
import { InfoController } from './info.controller';

@Module({
  controllers: [InfoController],
  providers: [InfoService], // 提供者
  exports: [InfoService] // 導出 InfoService 供其他模塊使用
})
export class InfoModule {}

然后我在user模塊中使用imports導入該模塊

// user.module.ts
import { Module } from '@nestjs/common';
import { UserService } from './user.service';
import { UserController } from './user.controller';
import { InfoModule } from 'src/info/info.module';

@Module({
  imports: [InfoModule], // 導入 InfoModule
  controllers: [UserController],
  providers: [UserService]
})
export class UserModule {}

最后在controller中依賴注入并使用

// user.controller.ts
import { InfoService } from 'src/info/info.service';

@Controller('user')
export class UserController {
  constructor(
    private readonly userService: UserService,
    private readonly infoService: InfoService, // 注入 InfoService
    ) {}

  @Post()
  create(@Body() createUserDto: CreateUserDto) {
    return this.infoService.findAll() // 調用 InfoService 的 findAll 方法

    // return this.userService.create(createUserDto);
  }
  //...
}

圖片圖片

這樣就完成模塊共享了,可以看到我們在user模塊中可以調用info的服務

模塊再導出

可以把一些常用的,公共的模塊,全部先import進一個CommonModule,然后再把它們從exprots全部導出,以后如果有那個模塊想要使用其中某個模塊的Service,只需要將這個CommonModule導入即可,不用再導入所有的依賴模塊

// common.module.ts
@Module({
  imports: [Module1, Module2, Module3, Module4],
  exports: [Module1, Module2, Module3, Module4],
})
export class CommonModule {}

依賴注入

模塊類也可以注入provider服務

@Module({
  controllers: [UserController],
  providers: [UserService],
})
export class UserModule {
  constructor(private userService: UserService) {}
}

全局模塊

通過@Global()裝飾器聲明一個全局模塊,只需要在根模塊imports注冊該全局模塊,就可以在其他所有模塊內使用它導出的Service

比如:將info聲明為全局模塊

// info.module.ts
@Global() // 全局模塊
@Module({
  controllers: [InfoController],
  providers: [InfoService], // 提供者
  exports: [InfoService] // 導出 InfoService 供其他模塊使用
})
export class InfoModule {}

然后在user模塊中無需導入,只需依賴注入就可直接使用(前提是已在根模塊導入)

// user.controller.ts
import { CreateUserDto } from './dto/create-user.dto';
import { InfoService } from 'src/info/info.service';

@Controller('user')
export class UserController {
  constructor(
    private readonly userService: UserService,
    private readonly infoService: InfoService, // 注入 InfoService
    ) {}

  @Post()
  create(@Body() createUserDto: CreateUserDto) {
    return this.infoService.findAll() // 調用 InfoService 的 findAll 方法
  }
}

圖片圖片

動態模塊

動態模塊能夠讓我們創建可定制的模塊,當導入模塊并向其傳入某些選項參數,這個模塊根據這些選項參數來動態的創建不同特性的模塊。

創建動態模塊

動態模塊其實就是給當前Module類提供一個forRoot方法,該方法返回一個新的Module,這個Module的類型是一個DynamicModule,在其他模塊需要注冊使用時,可以使用xxxModule.forRoot(args)來動態的注冊不同的Module,以達到提供不同providers的目的。

這里我們創建一個config的動態模塊

// config.module.ts
import { Module, DynamicModule, Global } from '@nestjs/common';
import { NanjiuService } from 'src/nanjiu/nanjiu.service';
import { UserService } from 'src/user/user.service';

interface Options {
    name: string
}
@Global()
@Module({
})
export class ConfigModule {
    static forRoot(options: Options): DynamicModule {
        console.log('options', options)
        return {
            module: ConfigModule,
            providers: [
                {provide: 'config', useClass: options.name === 'nanjiu' ? NanjiuService : UserService},
            ],
            exports: [
                {provide: 'config', useClass: options.name === 'nanjiu' ? NanjiuService : UserService}
            ]
        }
    }
}

這個例子很簡單,首先需要自己編寫一個靜態方法,該方法通過接收傳遞進來的參數判斷使用哪一個service,并且為了方便,我這里直接使用@Global()裝飾器將該模塊聲明稱了全局模塊

傳遞參數使用

調用靜態方法傳遞參數

// app.module.ts
@Module({
  imports: [ConfigModule.forRoot({name: 'fe'})],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

然后在controller中使用

import { Controller, Get, Inject } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(
    private readonly appService: AppService, 
    @Inject('config') private readonly configService // 注入 ConfigService
    ) {}

  @Get('/hello2')
  get2() {
    return this.configService.getHello() // 調用 ConfigService 的 getHello 方法
  }
}

比如上面forRoot傳遞的參數是{name: 'nanjiu'},所以此時的ConfigModule注入的應該是UserService

圖片圖片

修改forRoot參數

// app.module.ts
@Module({
  imports: [ConfigModule.forRoot({name: 'nanjiu'})],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

此時通過get方式再訪問同樣的路由,應該是訪問到NanjiuService提供的服務了。

圖片圖片

以上就是動態模塊的簡單用法,后續內容我們還會再遇到它~

責任編輯:武曉燕 來源: 前端南玖
相關推薦

2015-08-18 08:55:03

redux核心

2020-12-08 12:24:55

接口測試Interface

2021-08-18 16:09:39

NestJS

2023-07-25 09:00:27

RocketMQ開源

2021-07-10 14:32:30

Python導入模塊

2021-02-19 08:38:36

Kubernetes容器化分布式

2024-05-15 09:05:42

MySQL核心模塊

2024-06-05 11:49:33

2024-04-03 08:20:53

MySQL核心模塊

2021-01-27 05:19:41

Mycat模塊t中間件

2009-12-15 15:55:43

Ruby模塊

2010-01-26 14:04:02

2023-01-03 08:31:54

Spring讀取器配置

2022-01-27 13:47:10

Kubernete命令Linux

2022-02-09 09:53:43

Spring框架開源

2009-12-18 17:20:00

Ruby核心類

2022-03-10 13:11:11

DDD領域驅動設計

2025-05-23 10:38:43

2025-05-15 08:05:00

2023-08-29 07:35:15

點贊
收藏

51CTO技術棧公眾號

最新亚洲一区| 日本欧美三级| 亚洲第一av色| 久久综合福利| 中文字幕永久免费视频| 欧美日本三区| 亚洲全黄一级网站| 久久久久久无码精品人妻一区二区| 第一av在线| 亚洲国产精品t66y| 好吊色欧美一区二区三区 | 欧美91精品久久久久国产性生爱| 日日嗨av一区二区三区四区| 大量国产精品视频| 国产精品密蕾丝袜| 日韩精品久久久久久久软件91| 午夜日韩在线观看| 福利网在线观看| 六十路在线观看| 国产成人在线视频网站| 国产精品成人免费电影| 日本一区二区免费在线观看| 999国产精品永久免费视频app| 精品国产乱码久久久久久1区2区| 亚洲色图 在线视频| 国产污视频在线播放| 亚洲天堂a在线| 日韩精品极品视频在线观看免费| 北条麻妃一二三区| 久久99精品国产麻豆婷婷| 97视频国产在线| 久久久久久久久久久97| 99欧美视频| 永久免费精品影视网站| 变态另类丨国产精品| 亚洲国产欧美在线观看| 欧美精品色一区二区三区| 黄色av免费在线播放| 欧产日产国产精品视频| 亚洲一区视频在线观看视频| 亚洲区成人777777精品| 蜜芽在线免费观看| 中文av一区特黄| 欧美一区国产一区| 你懂的在线观看| www欧美成人18+| 久久国产精品精品国产色婷婷| 亚洲福利在线观看视频| 国产精品亚洲一区二区三区在线| 96sao精品视频在线观看| 在线免费观看一区二区| 免费观看30秒视频久久| 国产精品久久久91| 黄色一区二区视频| 秋霞午夜鲁丝一区二区老狼| 国产ts人妖一区二区三区| 九九热在线免费观看| 久久福利精品| 国产成人免费av| 真实的国产乱xxxx在线91| 日韩av中文字幕一区二区| 国产精品国内视频| 亚洲熟妇无码久久精品| 国产毛片一区二区| 国产在线视频91| 精品国产av一区二区| 国产成人99久久亚洲综合精品| 成人在线资源网址| 香蕉视频网站在线| 国产女主播视频一区二区| 亚洲欧美日韩国产yyy| 日本精品在线| 樱花草国产18久久久久| 少妇人妻大乳在线视频| 成年美女黄网站色大片不卡| 91福利区一区二区三区| 亚洲国产日韩欧美在线观看| 超碰国产精品一区二页| 日韩三级电影网址| 特大黑人巨人吊xxxx| av伊人久久| 美女扒开尿口让男人操亚洲视频网站| 日本一级特级毛片视频| 亚洲毛片播放| 国产精品久久国产精品99gif| 国产精品一级视频| 99视频一区二区| 特级西西444www大精品视频| 国产在线高潮| 欧美日韩国产在线看| 在线观看国产中文字幕| aiai久久| 日韩中文字幕视频在线观看| 国产亚洲欧美精品久久久久久| 亚洲欧美久久| 成人精品视频在线| 日韩专区第一页| 国产精品伦一区| 国产aaa免费视频| 外国电影一区二区| 精品国产免费久久| 女人裸体性做爰全过| 亚洲天堂激情| 国产精品一区二区三区在线播放 | 亚洲美女视频网站| 91传媒免费观看| 亚洲一区二区三区四区五区午夜| 国产日本欧美视频| 日韩av免费观影| 亚洲激情图片一区| 伊人国产在线视频| 香蕉久久精品日日躁夜夜躁| 成人97在线观看视频| 最近日韩免费视频| 91在线你懂得| 91国在线高清视频| 久久三级毛片| 亚洲女人天堂色在线7777| 欧美精品乱码视频一二专区| 日本aⅴ亚洲精品中文乱码| 国产欧美亚洲日本| caoporm免费视频在线| 欧洲一区二区三区免费视频| 国产精品九九视频| 中国精品18videos性欧美| 国产精品亚发布| 久蕉依人在线视频| 婷婷丁香激情综合| 亚洲欧美激情一区二区三区| 欧美激情欧美| 国产精品毛片a∨一区二区三区|国 | 亚洲黄色三级| 91免费观看| 含羞草www国产在线视频| 91精品福利视频| 18禁裸乳无遮挡啪啪无码免费| 国产一区美女| 97se亚洲综合| h片在线免费| 51午夜精品国产| 日韩av网站在线播放| 日韩电影免费一区| 日韩视频在线播放| 亚洲日本网址| 亚洲天堂av高清| 波多野结衣毛片| 国产婷婷色一区二区三区| 男人亚洲天堂网| 久久最新网址| 日本sm极度另类视频| 青青视频在线观| 欧美日韩国产色视频| 插我舔内射18免费视频| 亚洲精品美女| 欧美一区二区视频17c| 向日葵视频成人app网址| 国产亚洲精品高潮| 一级aaaa毛片| 亚洲精品视频一区| 少妇熟女视频一区二区三区| 精品动漫3d一区二区三区免费| 国产欧美综合精品一区二区| caoprom在线| 亚洲激情视频网站| 国产午夜精品久久久久| 国产日产欧美一区二区三区| 免费看污污网站| 五月天久久网站| 91九色露脸| 国产无遮挡裸体视频在线观看| 精品性高朝久久久久久久| 超碰在线观看91| 一区免费观看视频| 精品人妻无码中文字幕18禁| 亚洲精品美女91| 日韩欧美亚洲日产国产| 五月天色综合| 国语自产精品视频在线看一大j8 | 亚州精品一二三区| 999久久久精品国产| 不卡的av一区| 亚洲黄色网址| 日韩一区二区久久久| 午夜久久久久久噜噜噜噜| 欧美日韩亚洲一区二区| 欧美另类69xxxx| 成人一区二区三区中文字幕| 男人靠女人免费视频网站| 日本欧美肥老太交大片| 9a蜜桃久久久久久免费| 婷婷综合六月| 超碰97人人做人人爱少妇| 日韩精品视频无播放器在线看| 欧美在线你懂得| 国产午夜激情视频| 国产精品伦一区二区三级视频| 亚洲成年人在线观看| 欧美aⅴ一区二区三区视频| 男女裸体影院高潮| 国产精品亚洲人成在99www| 91青青草免费在线看| 欧美大片免费| 久久久久久九九九| 在线视频婷婷| 亚洲欧美国产日韩天堂区| www黄色在线观看| 欧美色老头old∨ideo| 国产网站在线看| 亚洲日本在线看| 亚洲精品一区二区三区影院忠贞| 高清不卡一区二区在线| 亚欧激情乱码久久久久久久久| 亚洲美女黄色| 欧美少妇在线观看| 日韩精品dvd| 久久伦理网站| 韩国精品福利一区二区三区| 成人综合国产精品| 另类一区二区| 国产成人亚洲精品| 九色porny丨入口在线| 久久97精品久久久久久久不卡| 成人高清网站| 日韩av在线网| 日韩一区二区三区在线观看视频| 8v天堂国产在线一区二区| 无码人妻熟妇av又粗又大| 精品日韩中文字幕| 天堂网一区二区三区| 亚洲一区二区三区在线看| 色婷婷在线视频观看| 中文文精品字幕一区二区| 中文字幕第4页| 91麻豆.com| 精品少妇人妻一区二区黑料社区 | 久久本道综合色狠狠五月| 波多野结衣欧美| 国产精品久久亚洲| 91蜜桃臀久久一区二区| 99re在线视频上| 亚洲精品观看| 翡翠波斯猫1977年美国| 一区二区三区视频播放| 91九色偷拍| 亚洲国产视频二区| 国产精品久久久久久久久久直播 | 久久久久成人精品无码| 亚洲男人的天堂在线观看| 久久国产波多野结衣| 国产精品不卡在线| 国产精品久久久精品四季影院| 亚洲欧美经典视频| 久久97人妻无码一区二区三区| 亚洲一区免费观看| 日韩欧美性视频| 色综合天天综合网天天狠天天 | 欧美日韩大片一区二区三区| 猛男gaygay欧美视频| 欧洲国产精品| 日韩中文字幕高清在线观看| 一区二区在线观看网站| 伊人久久大香线蕉综合四虎小说 | 日韩av电影免费在线观看| 精品盗摄女厕tp美女嘘嘘| 五月天国产一区| 国产精品伦理久久久久久| 激情图片qvod| 亚洲视频综合| 国产三区在线视频| 久久精品国产亚洲高清剧情介绍 | 国产一区二区视频免费| 欧美在线一区二区| 国产v片在线观看| 精品99999| 国内三级在线观看| 久久久国产精品一区| 在线观看的网站你懂的| 8x海外华人永久免费日韩内陆视频| 第84页国产精品| 成人欧美在线视频| 久久a级毛片毛片免费观看| 欧美久久久久久| 久久久久久美女精品| 东北少妇不带套对白| 肉肉av福利一精品导航| 中文av字幕在线观看| 成人黄色网址在线观看| 男人的天堂av网| 一区二区成人在线观看| 亚洲 欧美 中文字幕| 欧美一区二区久久| 国产最新视频在线| 久久久久久国产三级电影| 成人精品一区二区三区电影| 亚洲字幕在线观看| 精品国产成人| 日韩 欧美 视频| 男女性色大片免费观看一区二区 | 国产精品区在线| heyzo一本久久综合| 午夜国产福利视频| 精品久久久久国产| 99久久一区二区| 亚洲片av在线| 污片视频在线免费观看| 国产精品久久久久久久久影视| 91精品短视频| 伊人久久婷婷色综合98网| 国产精品老牛| 免费黄视频在线观看| 国产精品美女一区二区在线观看| 亚洲激情视频一区| 777午夜精品视频在线播放| 欧美成人免费| 91精品国产成人| 秋霞一区二区| 亚洲一区影院| 全国精品久久少妇| caopeng视频| 精品女同一区二区三区在线播放| 精品人妻午夜一区二区三区四区| 一色桃子一区二区| 成人av三级| 久精品国产欧美| 欧美三区不卡| √天堂资源在线| 国产精品毛片久久久久久久| 日韩精品一区二区亚洲av| 亚洲国产精品va在线| 青草在线视频在线观看| 91视频国产一区| 天天做天天爱天天综合网| 亚洲免费av一区二区三区| 91老师片黄在线观看| www.国产com| 亚洲免费av片| 欧美日韩123区| 欧洲精品在线一区| 天堂久久一区二区三区| 免费a级黄色片| 日韩欧美高清在线视频| 人人九九精品| 国产va免费精品高清在线观看| 日日狠狠久久偷偷综合色| 男女超爽视频免费播放| 99精品视频在线观看| 四虎成人永久免费视频| 国产视频久久久久久久| 中文字幕一区久| 区一区二区三区中文字幕| 视频一区二区不卡| 日韩黄色中文字幕| 欧美日韩不卡在线| 菠萝菠萝蜜在线视频免费观看| 成人欧美一区二区三区在线| 欧美区一区二| 无码任你躁久久久久久老妇| 天天影视网天天综合色在线播放 | 精品国产一区二区三区久久久| 国产精品蜜月aⅴ在线| 一本二本三本亚洲码| 国产精品乡下勾搭老头1| 久久久久久久极品内射| 日韩av最新在线| 欧美一区 二区 三区| 一本一本a久久| 国产福利电影一区二区三区| 日韩黄色三级视频| 亚洲视频网站在线观看| 91精品麻豆| 免费在线观看视频a| 国产亚洲欧美色| 91成人国产综合久久精品| 欧美老妇交乱视频| 欧美一级二级三级视频| 欧美婷婷精品激情| 夜色激情一区二区| 日本一二三区在线视频| 国产欧美婷婷中文| 精品9999| 在线观看天堂av| 精品国产污污免费网站入口 | 久久五月精品| 国产欧美一区二区在线播放| 日本亚洲最大的色成网站www| 黄色一级大片在线免费观看| 亚洲精品一线二线三线无人区| 成人在线网站| 欧美视频在线第一页| 久久蜜桃一区二区| 国产精品熟女久久久久久| 97精品久久久| 久久久久久影院| 日本黄色网址大全| 欧美一级理论片| 成人在线爆射| 男女视频网站在线观看| 中文字幕亚洲不卡| 午夜在线观看视频18| 国产欧美日韩丝袜精品一区|