• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

TypeError: RateLimit is not a constructor

22.01.07 11:58 작성 조회수 647

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 옵션 뭘로 주셨나요?