설치 방법 : npm i express-rate-limit
사용 방법 :
import rateLimit from 'express-rate-limit';
// OR
// const rateLimit = require("express-rate-limit");
const option = {
windowMs: 15 * 60 * 1000, // 15분
max: 100, // IP당 최대 100개의 요청을 허용합니다 (15 분 동안)
standardHeaders: true, // 헤더에 `RateLimit-*` 를 포함합니다
legacyHeaders: false, // `X-RateLimit-*` 헤더를 비활성화합니다.
}
const limiter = rateLimit(option);
// 모든 요청에 대해 ratelimit를 실행
app.use(limiter);
// api 요청에 대해 ratelimit를 실행
app.use("/api/", limiter);
max
Number | Function
함수일 경우, 숫자를 반환해야 합니다.
예시)
(req, res) => {
if (/* req를 이용해서 사용자를 구별해서, 최대 요청수를 return합니다 */) return 10
else return 5
}
message
Any
RateLimit을 초과했을 경우 전송될 메시지입니다.
express의 res.send 메서드가 지원하는 모든 타입이 가능합니다.
기본값은 'Too many requests, please try again later.'입니다.
keyGenerator
Function
이 함수는 클라이언트를 구분할 key를 반환해야 합니다.
기본값은 다음과 같습니다.
(req, res) => {
return req.ip
}
참고자료
https://www.npmjs.com/package/express-rate-limit
반응형
'코딩 > Javascript' 카테고리의 다른 글
Express v5 출시: Express.js 프로젝트의 생존신고 (1) | 2024.10.22 |
---|---|
[Javascript] 시간 포맷하기(며칠 전, 몇시간 전 등) (2) | 2022.02.16 |
ms를 문자열로 포맷하기 (0) | 2021.10.16 |
Node.js 자동 재시작 (supervisor) (0) | 2021.10.16 |
유튜브 영상 iframe으로 만들기 (0) | 2021.07.12 |