인프런 커뮤니티 질문&답변

roider2316님의 프로필 이미지
roider2316

작성한 질문수

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

CORS 에러 해결하기

프록시 서버 질문

해결된 질문

작성

·

178

·

수정됨

0

이전 강의에서 만든 서버에서 서버로 요청하는 nodecat서버를 프록시 서버라고 봐도 되나요?

브라우저에서 nodecat과 같은 도메인인 localhost:4000/myposts 요청을 보냈고 nodecat 서버가 이를 받아 nodebird서버로 localhost:8002/v1/post/my 요청을 보냈으니 이게 뭐 http-proxy-middleware같은 패키지를 써서 따로 구현해야 하는 프록시 서버랑 뭐가 다른지 모르겠습니다.

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 브라우저 입장에서는 프록시서버라고 볼 수 있습니다. 프론트개발을 할 때도 cors를 피하기 위해 이런 식으로 같은 포트의 서버를 사용하거든요.

roider2316님의 프로필 이미지
roider2316
질문자

이해되었습니다. 그리고 또 안 되는 것이

apiLimiter에서

exports.apiLimiter = (req, res, next) => {
  rateLimit({
    windowMs: 60 * 1000, 
    max: 5, 
    handler(req, res) {
      res.status(this.statusCode).json({
        code: this.statusCode,
        message: "1분에 다섯 번만 요청할 수 있습니다.",
      });
    },
  })(req, res, next);
};

그냥 rateLimit를 바로 호출하니 적용이 되어요청이 5번 초과했을 때 에러 메시지를 잘 띄우는데, 확장패턴으로 rateLimit를 호출하니 적용이 되지 않은 것인지 5번 넘게 호출해도 헨들러 에러는 물론 기타 에러도 뜨지 않고 그냥 계속 api를 제공하게 되는데 제가 확장패턴을 잘못 쓰고 있는 것인가요?

 

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

https://www.inflearn.com/questions/919591/10-6-%EC%9E%AC%EC%A7%88%EB%AC%B8

이렇게 쓰셔야 합니다. 강좌와 책에서도 수정해야 하는 내용입니다.

roider2316님의 프로필 이미지
roider2316
질문자

전부 해결되었습니다. 감사합니다!

roider2316님의 프로필 이미지
roider2316

작성한 질문수

질문하기