Estoy tratando de hacer uso de 'express-rate-limit' y, por alguna razón, cuando ejecuto el servidor obtengo SyntaxError: token inesperado '?' aunque estoy bastante seguro de que mi script no tiene ningún error de sintaxis.
Aquí está el código:
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;autenticación.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;Aquí hay una captura de pantalla del error:
Está intentando utilizar la fusión nula ( ?? ) en una versión no compatible de Node. La fusión nula es compatible con Node v14 y versiones posteriores.
Por ahora la alternativa simple es || , a menos que actualice su versión.
No indica qué versión de nodo está utilizando. El operador coalescente nulo no se agregó hasta la versión 14.
De la documentación :
Este paquete requiere que use Node 14 o superior.
El ?? operador arrojar un error indica que está utilizando una versión anterior.