Установка куки в Nest
Чтобы браузер запомнил выбор, сервер добавляет в ответ служебный заголовок. В Nest это не делают напрямую через объект ответа Express: за запись отвечает HTTP-адаптер, общий для разных движков.
Хост адаптера внедряют в контроллер.
Объект ответа берут параметром с
режимом сквозной передачи, чтобы
тело ответа по-прежнему формировал
возвращаемое значение метода.
Запись выполняют через поле
httpAdapter хоста.
Покажем на примере постов:
import { Body, Controller, Put, Res } from '@nestjs/common';
import { HttpAdapterHost } from '@nestjs/core';
import type { Response } from 'express';
@Controller('posts')
export class PostController {
adapterHost: HttpAdapterHost;
constructor(adapterHost: HttpAdapterHost) {
this.adapterHost = adapterHost;
}
@Put('theme')
setTheme(
@Body('theme') theme: string,
@Res({ passthrough: true }) response: Response,
): string {
this.adapterHost.httpAdapter.setCookie(
response,
'theme',
theme,
);
return theme;
}
}
В WorkerController сохраните
режим оформления из тела запроса
в исходящей куке и верните короткое
подтверждение клиенту.