Nest js/Redirect

NestJS redircet

디지털노마드-건물주 2023. 12. 24. 23:06
728x90

NestJS에서 리다이렉트를 어떻게 구현을 할까? 

우선 document를 보자

NestJS 공홈

요약 : @Get('memberList') 여기에 요청을 주면 @Redirect('http://localhost:3000/admin/memeberList) 으로 이동한다. 쉬운 이해를 위해 다음의 코드의 예시를 2가지로 설명합니다.

 

Redirection 방법1: @Redirect

import {
  Body,
  Controller,
  Get,
  Param,
  Patch,
  Query,
  Redirect,
  Req,
} from '@nestjs/common';
import { Request } from 'express';
import { MemberService } from 'src/member/member.service';

@Controller('admin')
export class AdminController {
  constructor(private memberService: MemberService) {
    this.memberService = memberService;
  }

  @Get('/memberList')
  @Redirect('http://localhost:3000/admin/members')
  memberRedirect(@Req() req: Request) {
    const session: any = req.session;
    if (session.memberType.memberType != 'admin') {
      return { url: 'http://localhost:3000/member/login' };
    }
  }

  @Get('/members')
  getMembers() {
    return this.memberService.getAllmembers();
  }

  
}

해석: admin/memberList로 Get요청을 주면 admin/members로 이동해서 '회원 전체' 정보를 가져온다.

         if 세션에서 멤버 타입을 보니 'admin'이 아니면 member/login으로 이동한다. 유남셍?

 

Redirection 방법2 : res.redirect( url );

 

  @Controller('member')
export class MemberController {
  constructor(private memberService: MemberService) {
    this.memberService = memberService;
  }
  
  @Get('/login')
  loginPage(@Res() res: Response) {
    return res.redirect('http://localhost:3000/member/redirect');
  }
  
  @Get('/redirect')
  redirect() {
    return 'redirect';
  }
  
}

*해석: member/login 페이지로 이동하면 member/redirect로 이동한다. 유남셍?

728x90