반응형

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

 

1. 여러 원인이 있었지만, 공통적인 원인은 서버에서 같은 클라이언트에게 2번 이상 연속으로 응답을 전송하면 발생했다.

 

2. 필자 같은 경우는 아래와 같이 코딩 되어 있었다.

  @Get('/index')
  @Render('index')
  getAddminIndex(@Req() req : Request, @Res() res: Response) {

   	return res.redirect("/admin/login");

  }

 

3. 처음 위 코드만 봤을때 return 한번만 수행하므로 이상이 없어보였다.

 

4. 자세히 살펴보니 @Render('index') 부분에 한번 더 호출한다는 것을 알아냈다.

 

5. 그래서 아래처럼, @Render  을 쓰지 않고, 직접 호출하는 방식으로 작성하여 해결 되었다.

  @Get('/index')
  getAddminIndex(@Req() req : Request, @Res() res: Response) {

    if (해당 조건이면) {
       // 리다이렉트
       return res.redirect("/login");
    } else {
      // index 페이지 Render
      res.render('index');
    }
    
  }

 

반응형