getting SyntaxError: Unexpected token '?' when using 'express-rate-limit'

1k Views Asked by At

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:

enter image description here

3

There are 3 best solutions below

0
code On BEST ANSWER

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.

0
kevintechie On

You don't indicate what version of node you are using. The nullish coalescing operator was not added until version 14.

0
Quentin On

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.