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

abent.developer님의 프로필 이미지
abent.developer

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

사용량 제한두기

TypeError: RateLimit is not a constructor

작성

·

724

1

코드는 동일한데, 해당 에러가 나옵니다.

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

exports.isLoggedIn = (req, res, next) => {
if (req.isAuthenticated()) {
next();
} else {
res.status(403).send('로그인 필요');
}
};

exports.isNotLoggedIn = (req, res, next) => {
if (!req.isAuthenticated()) {
next();
} else {
res.redirect('/');
}
};

exports.verifyToken = (req, res, next) => {
try {
req.decoded = jwt.verify(req.headers.authorization, process.env.JWT_SECRET);
return next();
} catch (error) {
if (error.name === 'TokenExpiredError') { // 유효기간 초과
return res.status(419).json({
code: 419,
message: '토큰이 만료되었습니다',
});
}
return res.status(401).json({
code: 401,
message: '유효하지 않은 토큰입니다',
});
}
};

exports.apiLimiter = new RateLimit({
windowMs: 60 * 1000, // 1분
max: 10,
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: '새로운 버전이 나왔습니다. 새로운 버전을 사용하세요.',
});
};

답변 2

2

6이면 new 삭제하면 됩니다!

https://www.npmjs.com/package/express-rate-limit

1

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

npm i express-rate-limit@5 

하세요

에러는 피했는데, 함수동작은 안되는거같아요.

요청 계속해도 handler에서 1분에 한번만 요청할 수 있다고 메시지를 안보내주네용

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

new RateLimit 옵션 뭘로 주셨나요?

abent.developer님의 프로필 이미지
abent.developer

작성한 질문수

질문하기