Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
Why does `var exports = module.exports = {};` works but not `let exports = module.exports = {};`?

During code optimisation of my project, I was replacing all instances of var keyword with let because I think there is no particular use left for var. I did a 'Find & Replace' in all files to do this.

In some custom modules I had used statements like:

var exports = module.exports = {};

which worked fine.

Now, after replacing it with let, it became:

let exports = module.exports = {};

It does not work now and gives an error

SyntaxError: Identifier 'exports' has already been declared

Though I can use var and avoid this problem, I still want to know what is the reason behind this.

EDIT: I have not used let exports = <something>; anywhere in same module file. So this is the only statement where I have declared exports variable.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

The reason is because exports is already initialized in Nodejs module system.

https://nodejs.org/api/modules.html#modules_module_exports

The object exists, module.exports when the module loads. Since let is scope specific it is preventing you from limiting the scope. const would also fail.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda