Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

91
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!