我正在開發一個使用多個 Nest 存盤庫的專案,大約 4 個。每個存盤庫都需要實作日志記錄以記錄諸如
- 服務器生命周期事件
- 未捕獲的錯誤
- HTTP 請求/回應
理想情況下,我想將所有內容打包成一個模塊,我可以將其發布到我公司的 NPM 組織,并直接在我的每個專案中使用。這樣,在每個專案中設定日志記錄所需的代碼非常少。
我想登錄服務器生命周期事件的其中一件事是服務器的 url。我知道你可以app.getUrl()在引導階段獲得這個,但是像這樣在模塊的生命周期鉤子中訪問應用程式實體會很棒。
@Module({})
export class LoggingModule implements NestModule {
onApplicationBootstrap() {
console.log(`Server started on ${app.getUrl()}`)
}
beforeApplicationShutdown() {
console.log('shutting down')
}
onApplicationShutdown() {
console.log('successfully shut down')
}
configure(consumer: MiddlewareConsumer) {
consumer.apply(LoggingMiddleware).forRoutes('*')
}
}
這可能嗎?
uj5u.com熱心網友回復:
沒有辦法(可能除了 hacky 之外)在模塊中訪問應用程式本身。
正如您在此處看到的,app.getUrl()使用底層 HTTP 服務器。因此,我猜您可以使用 provider 檢索相同的資料HttpAdapterHost。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/418427.html
標籤:
上一篇:在網頁上顯示NodeJS查詢結果
