짜는것은 생각보다 어렵지 않았다. 우선 모듈을 설치해주자.
npm i express-rate-limit
그 다음 전역으로 선언해주고 함수를 추가해주자
const RateLimit = require("express-rate-limit");
apiLimiter = new RateLimit({
windowMs: 60 * 1000, // 1분 간격
max: 3, // windowMs동안 최대 호출 횟수
handler(req, res) {
// 제한 초과 시 콜백 함수
res.status(this.statusCode).json({
code: this.statusCode, // statusCode 기본값은 429
message: "1분에 3번만 요청 할 수 있습니다.",
});
},
});
// 미들웨어 들어가는 경로
app.use("/", apiLimiter, [routes]);
저렇게 코드와 메세지를 볼 수 있다. 더이상 req를 없게 되었다 ! 크 적당히 조절해서 만들면 될거 같다. 이런 편리한 기능을 모듈 다운받고 작성하면 되다니... Node.js 최고 !!