web-dev-qa-db-ja.com

nestjsでヘッダーを書く方法

方法nest.jsを使用してヘッダーを作成するにはどうすればよいですか?

私は現在これを使用しています:

_import { Controller, Body, Get, Post, HttpCode, HttpStatus, Req, Res } from '@nestjs/common';
import { Request, Response } from 'express';
import { AuthService } from './auth.service';
import { Usuario } from '../usuario/usuario.entity';
import { JsonWebTokenError } from 'jsonwebtoken';
import { request } from 'http';

@Controller('auth')
export class AuthController {
    constructor(private readonly authService: AuthService) { }

    @Post('login')
    @HttpCode(HttpStatus.OK)
    async login(@Body('username') username: string, @Body('password') password: string, @Res() response: Response) {
        this.authService
            .validateUser(username, password)
            .then((token) => {
                response.setHeader('Authorization', 'Bearer ' + token);

                let respuesta: any = {};
                respuesta.success = true;
                respuesta.token = token;

                return response.send(respuesta);
            });
    }
}
_

response.setHeader('Authorization', 'Bearer ' + token);return response.send(respuesta);を使いたくない

ご回答ありがとうございます!

5

最新バージョンでは、NestJSCore内で@Headerデコレータを使用できました。

import { Controller, Get, Req, Header, Res } from '@nestjs/common';
import { Request, Response } from 'express';

@Controller('cookies')
export class CookiesController {
  @Get('set')
  // @Header('Set-Cookie', 'cookieName = 12345') // "Usin header decorator"
  setCookie(@Res() response: Response): Response {
    /*
    * If using express approach, pass @Res as param decorator
    */
    response.cookie('rememberme', '1') // Using express res object.
    return response.send('Cookie has been set! :)')
  }

  @Get()
  checkCookie(@Req() request: Request ): string {
    console.log(Object.keys(request.cookies))
    if(Object.keys(request.cookies).length > 0){
      console.log('cookies =>', request.cookies)
      return 'Cookies are set :)'
    } else {
      return 'Uh, oh! Cookie hasn\'t been set :\'('
    }
  }
}

1
Ian Franco Pozo