Node.js 如何在nest.js中的助手类中使用服务?

Node.js 如何在nest.js中的助手类中使用服务?,node.js,dependency-injection,nestjs,Node.js,Dependency Injection,Nestjs,我在app.module.ts文件中导入redis模块: @Module({ imports: [ TypegooseModule.forRoot('mongodb://mongo:27017/test', { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, }), RedisModule.register({ url: 'redis://

我在
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实体(模块或提供者)?

最终创建了一个单独的
会话
模块,将我的服务作为提供者添加并导出,然后在我想要的模块中使用它:

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

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


您只需从RedisModule导出服务,然后在SessionManager作为提供者的模块中导入该模块