Reputation: 417
I am trying make use of 'express-rate-limit' and for some reason when running the server I am getting SyntaxError: Unexpected token '?' even though I am pretty sure my script does not have any syntax error.
Here is de code:
rateLimiter.js
const rateLimit = require('express-rate-limit');
const rateLimiter = (limit, timeframeInMinutes) => {
return rateLimit({
max: limit,
windowMs: timeframeInMinutes * 60 * 1000,
message: {
error: {
status: 429,
message: 'TOO_MANY_REQUESTS',
expiry: timeframeInMinutes,
},
},
});
};
module.exports = rateLimiter;
auth.js
const express = require('express');
const authController = require('../controllers/auth');
const rateLimiter = require('../helpers/rateLimiter');
// Router initialisation
const router = express.Router();
// Routes
router.get('/test', rateLimiter(1, 10), authController.test);
module.exports = router;
Here is a screenshot of the error:
Upvotes: 4
Views: 1255
Reputation: 943564
From the documentation:
This package requires you to use Node 14 or above.
The ??
operator throwing an error indicates that you're using an older version.
Upvotes: 4
Reputation: 1521
You don't indicate what version of node you are using. The nullish coalescing operator was not added until version 14.
Upvotes: 2
Reputation: 6319
You are trying to use nullish coalescing (??
) on an unsuported version of Node. Nullish coalescing is supported from Node v14 and up.
For now the simple alternative is ||
, unless you upgrade your version.
Upvotes: 4