gpt4 book ai didi

typescript - 如何在 NestJS 的响应中设置 header 字段?

转载 作者:行者123 更新时间:2023-12-03 21:14:30 27 4
gpt4 key购买 nike

我想:

    @Post('login')
async login(@Body() body: AuthDto, @Res() res: Response) {
const loginResponse = await this.authService.login(body);
console.log('loginResponse', loginResponse)
res.headers.set('x-access-token', loginResponse.access_token)
return loginResponse
}

但没有骰子。我收到一个错误:
TypeError: Cannot read property 'set' of undefined

最佳答案

不是最优雅的方式:return res.set({ 'x-access-token': loginResponse.access_token }).json(loginResponse);
我将此逻辑分离到拦截器中,检查响应是否对路径/登录有效,如果是,则返回正确的 header (使用来自 loginResponse 的某些值)

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

@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}

@Get()
getHello(@Response() res: Res): Res {
return res.set({ 'x-access-token': 1 }).json({ hello: 'world' });
}

@Get()
getHelloAlt(@Response() res) {
return res.set({ 'x-access-token': 1 }).json({ hello: 'world' });
}
}

这是我的工作版本,请注意 Express Response 而不是 Nest.js。

编辑:从 Nest.js/common 导入的类型是一个装饰器函数,而不是使用任何类型,或者从 Express.js 导入响应。

关于typescript - 如何在 NestJS 的响应中设置 header 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61697771/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com