Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

93
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda