РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpCqQh 171 of 201 menu
◀ ▶

Обработчик запроса в Nest

Запрос уже уходит в шину, но без класса, который знает, где лежит массив, ответ так и останется пустым. Чтение должно жить отдельно от команды записи.

Обработчик запроса - класс с пометкой @QueryHandler, который реализует IQueryHandler и только возвращает данные. Его регистрируют в провайдерах рядом с обработчиком команды и общим хранилищем в памяти.

Покажем на примере постов:

import { IQueryHandler, QueryHandler } from '@nestjs/cqrs'; import { GetPostsQuery } from './get-posts.query.js'; import { PostMemory } from './post.memory.js'; @QueryHandler(GetPostsQuery) export class GetPostsHandler implements IQueryHandler<GetPostsQuery> { postMemory: PostMemory; constructor(postMemory: PostMemory) { this.postMemory = postMemory; } async execute(query: GetPostsQuery) { return this.postMemory.posts; } }

Корневой модуль добавляет обработчик запроса к уже известным провайдерам:

import { Module } from '@nestjs/common'; import { CqrsModule } from '@nestjs/cqrs'; import { PostController } from './post.controller.js'; import { CreatePostHandler } from './create-post.handler.js'; import { GetPostsHandler } from './get-posts.handler.js'; import { PostMemory } from './post.memory.js'; import { PostService } from './post.service.js'; @Module({ imports: [CqrsModule.forRoot()], controllers: [PostController], providers: [ PostMemory, PostService, CreatePostHandler, GetPostsHandler, ], }) export class AppModule {}

Зарегистрируйте GetWorkersHandler, который возвращает массив из WorkerMemory для GetWorkersQuery.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить