我正在尝试读取 Nestjs 控制器中的 cookie。
我正在关注https://docs.nestjs.com/techniques/cookies#use-with-express-default
的文档这是我的代码
import { Controller, Get, Render, Req } from '@nestjs/common';
@Controller()
export class AppController {
@Get()
@Render('home')
getHello(@Req() req: Request) {
return { text: req.cookies['id'] };
}
}
问题是来自express的
Request
类型没有cookies
。所以我收到这个错误。
src/app.controller.ts:11:24 - error TS2339: Property 'cookies' does not exist on type 'Request'.
11 return { text: req.cookies['id'] };
~~~~~~~
如果我从
Request
中删除类型 req
,代码实际上会起作用。但后来我失去了类型安全。
您需要从
Request
导入类型 express
(因此安装 @types/express
)。你用的那个不是它的。我假设您是默认的 http 适配器。
导入错误 从 @types/express 导入
npm i @types/express
进口:
import express, { Request, Response} from "express";
这会解决它