簡體   English   中英

如何在 nest.js 的輔助類中使用服務?

[英]How can I use service in a helper class in nest.js?

我在app.module.ts文件中導入 redis 模塊:

@Module({
  imports: [
    TypegooseModule.forRoot('mongodb://mongo:27017/test', {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useCreateIndex: true,
    }),
    RedisModule.register({ url: 'redis://sessions' }),
    UsersModule,
    AuthModule,
  ],
  controllers: [],
  providers: [],
})
export class AppModule {}

我想創建一個幫助類SessionManager來管理用戶的會話(在 Redis 中存儲、更新、刪除它們),例如這樣的:

import { RedisService } from 'nestjs-redis';
import { User } from 'src/users/schemas/user.schema';
import { IUserSessions } from '../interfaces/Session.interface';

class SessionManager {
  constructor(private redisService: RedisService) {}

  saveUserSession(user: User, userAgent: string) {}

  static getSessionsByUserId(userId: string): IUserSessions {
    const client = this.redisService.getClient()
    const sessions = client.hmgetall(userId)

    return sessions
  }
}

export default SessionManager

並在我的auth.service.ts使用它。 我怎么做? 它是否必須表示為某個 Nest.js 實體(模塊或提供者)?

最終創建了一個單獨的sessions模塊,將我的服務添加為提供者並導出它,然后在我想要的模塊中使用它:

import { Module } from '@nestjs/common';
import { SessionsService } from './sessions.service';

@Module({
  providers: [SessionsService],
  exports: [SessionsService]
})
export class SessionsModule {}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM