Запись в сессию в Nest
После подключения middleware у запроса появляется поле с объектом сессии. Его поля можно менять в методе страницы: при следующем обращении клиента middleware подставит те же данные.
Объект запроса берут параметром
метода. Тип запроса импортируют
из Express. Запись - присвоение
свойству на session, без
отдельного вызова сохранения
на каждый ключ.
Покажем на примере постов:
import 'express-session';
declare module 'express-session' {
interface SessionData {
viewer?: string;
}
}
Запишем имя зрителя при изменении и прочитаем его на адресе списка:
import { Body, Controller, Get, Put, Req } from '@nestjs/common';
import type { Request } from 'express';
@Controller('posts')
export class PostController {
@Put('viewer')
setViewer(
@Body('viewer') viewer: string,
@Req() request: Request,
): string {
request.session.viewer = viewer;
return viewer;
}
@Get()
getPosts(@Req() request: Request): string {
const viewer = request.session.viewer ?? 'guest';
return `Posts for ${viewer}`;
}
}
В WorkerController запишите
идентификатор в сессию запроса
и верните его на адресе списка
работников.