익명의 개발노트

13.[사용량 제한] express-rate-limit 라이브러리로 사용량 제한걸기 본문

프로그래밍/NodeJS

13.[사용량 제한] express-rate-limit 라이브러리로 사용량 제한걸기

캡틴.JS 2020. 10. 21. 21:13
반응형

무분별한 api 호출을 제한하기 위해 express-rate-limit 라이브러리를 설치해보자

npm i express-rate-limit

RateLimit 미들웨어를 라우터에 넣으면 라우터에 사용량 제한걸림.

const jwt = require('jsonwebtoken');
const RateLimit = require('express-rate-limit');

exports.apiLimiter = new RateLimit({
  windowMs: 60 * 1000, // 기준시간
  max: 1,  //허용횟수
  delayMs: 0,  //호출간격
  
  //제한 초과시 콜백함수
  handler(req, res) {
    res.status(this.statusCode).json({
      code: this.statusCode, // 기본값 429
      message: '1분에 한 번만 요청할 수 있습니다.',
    });
  },
});

exports.deprecated = (req, res) => {
  res.status(410).json({
    code: 410,
    message: '새로운 버전이 나왔습니다. 새로운 버전을 사용하세요.',
  });
};

 

api 응답코드 목록

미들웨어에 만들어줬으므로, 사용하고자 하는 라우터에서 인자값으로 넣어서 사용한다.

 

참고자료: Node.js 교과서 - 제로초

 

 

반응형
Comments