如何在 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 {}

最新更新