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

92
Vistas
Module.exports devuelve indefinido

Estoy tratando de exportar una variable desde un archivo, pero cuando lo requiero en otro, me sale indefinido. Sospecho que mis funciones lo están causando, pero no estoy seguro de cómo solucionarlo.

Índice.js:

 app.post("/", (req,res) =>{ console.log("Get from /"); module.exports.SimpleMessage = 'Hello world'; //exporting variable exec('npx hardhat run scripts/deploy.js --network goerli', (error, stdout, stderr) => { if (error !== null) { console.log(`exec error: ${error}`); } }); res.send("Server received the request"); }); // starting the server app.listen(3000, () => { console.log('listening on port 3000'); });

Implementar.js:

 async function main() { const HelloWorld = await ethers.getContractFactory("HelloWorld"); var msg = require('../src/index.js'); //requiring variable console.log(msg.SimpleMessage); const hello_world = await HelloWorld.deploy(); }

(Editar) Esta es toda la función Deploy.js:

 async function main() { const HelloWorld = await ethers.getContractFactory("HelloWorld"); var msg = require('../src/index.js'); //requiring variable console.log(msg.SimpleMessage); const hello_world = await HelloWorld.deploy(); } main() .then(() => process.exit(0)) .catch(error => { console.error(error); process.exit(1); });
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

así que hay algunas cosas para desenvolver aquí:

  • su require() probablemente se invoque antes module.exports.SimpleMessage = 'Hello world'; - un problema fácil de encontrar cuando se trata de funciones asíncronas

  • require() se implementa de tal manera que si lo llama dos veces con el mismo archivo, la segunda vez solo se devuelve el valor almacenado en caché y, por lo tanto, si el valor de SimpleMessage cambia, ya no podrá importarlo. . En su lugar, solo se devolverá el valor original.

Una solución rápida y simple es exportar un valor que no cambiará, como una función

 let SimpleMessage; module.exports.getSimpleMessage = () => SimpleMessage; app.post("/", (req,res) =>{ console.log("Get from /"); SimpleMessage = 'Hello world'; // and the rest of your logic });

en este punto, puede hacer referencia getSimpleMessage que se almacenará en caché mediante require() pero aún así siempre devolverá la versión actualizada de SimpleMessage

about 4 years ago · Santiago Gelvez 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