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

238
Visualizações
¿Por qué esto muestra un error de tipo en NodeJS al usar el módulo de ping?

Estoy tratando de hacer una aplicación básica para hacer ping a una IP. Entonces, mi formulario HTML toma una IP de entrada y la publica en NodeJS. Estoy usando el módulo de ping para obtener los resultados. funciona bien si introduzco una IP de forma estática, pero cuando intento obtener una IP mediante un formulario HTML, simplemente se rompe. Así es como se ve mi código.

 app.post("/",function(req,res){ console.log(req.body); var ip= req.body.ip; console.log(typeof(ip)); var msg; var hosts = [ip]; hosts.forEach(function(host){ ping.sys.probe(host, function(isAlive){ console.log(isAlive); msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead'; console.log(msg); }); }); res.write(msg); res.send(); });

Esto es lo que viene en consola

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

A mi modo de ver, esto es lo que está pasando:

  1. Emites una solicitud de ping. Tenga en cuenta que toma una función de devolución de llamada como parámetro. Esto sugiere que se trata de una operación de E/S asíncrona.
  2. tu ejecutas
 res.write(msg); res.send();

En ese momento, msg aún no está definido y, por lo tanto, supongo que res.write(msg) es, de hecho, la línea 30 del archivo app.js sobre el que se trata el error.

  1. Solo entonces se ejecuta la función de devolución de llamada, pero es demasiado tarde

Recomendaría cambiarlo de la siguiente manera

 app.post("/",function(req,res){ console.log(req.body); const ip= req.body.ip; console.log(typeof(ip)); ping.sys.probe(ip, function(isAlive){ console.log(isAlive); const msg = isAlive ? 'host ' + host + ' is alive' : 'host ' + host + ' is dead'; console.log(msg); res.write(msg); res.send(); }); });
about 4 years ago · Juan Pablo Isaza 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