亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用來自 JSON 的數據初始化多個 nestjs 提供程序?

如何使用來自 JSON 的數據初始化多個 nestjs 提供程序?

郎朗坤 2022-10-08 17:47:23
我是 NestJS 的新手,正在創建一個應用程序。我的應用程序利用 MVC 架構并具有多個模塊,例如Project | +-- App.Controller +-- App.Service +-- App.Module |     +-- SubModule1 |  |   |  +-- SubModule1.Controller |  +-- SubModule1.Service |  +-- SubModule1.Module |     +-- SubModule2 |  |   |  +-- SubModule2.Controller |  +-- SubModule2.Service |  +-- SubModule2.Module | +-- SubModule3 |  |   |  +-- SubModule3.Controller |  +-- SubModule3.Service |  +-- SubModule3.Module現在我的每個子模塊服務類都有一個數據成員private member: string[] = []我想用我存儲在 json 文件中的一些數據來初始化這些類成員。我的json結構就是這樣{    'SubModule1' : [        string1,        string2,        string3,        ...        stringN    ],     'SubModule2' : [        string1,        string2,        string3,        ...        stringN    ],     'SubModule3' : [        string1,        string2,        string3,        ...        stringN    ]}誰能指導我什么是正確的方法?我應該在哪里加載 json 然后注入數據?我最初的想法是利用 app.service 類來加載和注入數據,但我不確定如何訪問子模塊提供程序。任何指導或幫助將不勝感激。謝謝
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

為了在應用程序啟動期間初始化數據,您可以使用生命周期事件之一,例如OnModuleInit

@Injectable()

export class MyService implements OnModuleInit {

  onModuleInit() {

    await initializeData()

  }

}

如果您想為相同結構的許多提供者重復執行此操作,則可以從初始化器類擴展,如下所示:


abstract class DataInitializer implements OnModuleInit {

  member: string[];

  onModuleInit() {

    const jsonData = // ...

    this.member= jsonData[this.constructor.name];

  }

}


@Injectable()

export class AppService extends DataInitializer {

  // ...


查看完整回答
反對 回復 2022-10-08
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號