Чтение значения из кэша в Nest
Страница списка должна показать заголовок, даже если в кэше ещё ничего не лежит. Пустой ответ менеджера нельзя отдавать клиенту как готовый текст.
Чтение идёт той же асинхронной
операцией менеджера. Если значения
нет, приходит undefined.
Тогда подставляют короткую
запасную фразу через оператор
объединения с null.
Покажем на примере постов:
import { Inject, Injectable } from '@nestjs/common';
import { CACHE_MANAGER, Cache } from '@nestjs/cache-manager';
@Injectable()
export class PostService {
constructor(
@Inject(CACHE_MANAGER) private cacheManager: Cache,
) {}
async getBanner(): Promise<string> {
const value =
await this.cacheManager.get<string>('banner');
return value ?? 'Welcome';
}
}
Контроллер отдаёт клиенту результат сервиса:
import { Controller, Get } from '@nestjs/common';
import { PostService } from './post.service.js';
@Controller('posts')
export class PostController {
constructor(private postService: PostService) {}
@Get('banner')
async getBanner(): Promise<string> {
return this.postService.getBanner();
}
}
Верните из WorkerController
заголовок из кэша или короткую
фразу по умолчанию, если записи
ещё нет.