nestjs如何在请求中获取Cookie?

jan*_*w a 5 nestjs

nestjs如何在请求中获取Cookie?

import { Get, Controller, Response, Request } from '@nestjs/common';
import { AppService } from './app.service';

const l = console.log
@Controller()
export class AppController {
  @Get('json')
  json(@Request() req){
    console.log(req.cookies) // undefined
  }
}
Run Code Online (Sandbox Code Playgroud)

jan*_*w a 12

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as cookieParser from 'cookie-parser'

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.use(cookieParser());
  await app.listen(5000);
}
bootstrap();
Run Code Online (Sandbox Code Playgroud)


Kam*_*iec 11

您必须安装cookie-parser中间件。

$ npm install --save cookie-parser
Run Code Online (Sandbox Code Playgroud)

安装过程完成后,只需将中间件绑定到您的应用程序即可:

const app = await NestFactory.create(ApplicationModule);
app.use(cookieParser());
Run Code Online (Sandbox Code Playgroud)

在此处阅读更多信息:https : //expressjs.com/en/resources/middleware/cookie-parser.html


NKo*_*Kol 6

对于 2022 年正在研究这个问题的所有人。
您可以在文档中找到它: https: //docs.nestjs.com/techniques/cookies

如果您使用 Typescript,其他答案将不起作用。
您需要运行(根据文档):

$ npm i cookie-parser
$ npm i -D @types/cookie-parser
Run Code Online (Sandbox Code Playgroud)