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

331
Visualizações
Llame a la función JS en html en el lado del servidor (nodejs)

tengo un index.html

 <!DOCTYPE html> <html> <head> <title>Server-side Example</title> <script src="./CircleArea.js"></script> </head> <body> <input id="ftpd" type="button" value="Calculate" onclick="CircleArea()" /> </body> </html>

Llama al archivo CircleArea.js.

 const PI = 3.14 let radius = 3; function circleArea(){ var inputField = document.createElement("INPUT"); inputField.setAttribute("type", "text"); inputField.setAttribute("value", (PI*radius*radius)); document.body.appendChild(inputField); } module.exports ={circleArea}; // This I added for nodejs

Funciona bien. Pero ahora quiero ejecutar Index.html en el lado del servidor.

Agregué server.js

 let http = require('http'); let fs = require('fs'); let handleRequest = (request, response) => { response.writeHead(200, { 'Content-Type': 'text/html' }); fs.readFile('./Index.html', null, function (error, data) { if (error) { response.writeHead(404); respone.write('Whoops! File not found!'); } else { response.write(data); } response.end(); }); }; http.createServer(handleRequest).listen(8000); console.log('Server running at http://localhost:8000');

Ahora node server.js

da error

 CircleArea.js:1 Uncaught SyntaxError: Unexpected token '<' (Index):13 Uncaught ReferenceError: CircleArea is not defined at HTMLInputElement.onclick ((Index):13:6)

Mi pregunta es ¿cómo debo modificar Index.html y CircleArea.js para ejecutarlo en nodejs?

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

0

Su código no tiene nada que ver con la evaluación del lado del servidor. Está utilizando Node.js como servidor web. El servidor no evalúa el código del cliente. No importa CircleArea.js . no necesitas

 module.exports ={circleArea}; // This I added for nodejs

y debe quitarlo. Es una exportación de módulo CommonJS y no está permitida en el código del navegador.

Un navegador web envía una solicitud de index.html . El servidor responde con el contenido de Index.html . El navegador lo evalúa. Encuentra una etiqueta de secuencia de comandos para ./CircleArea.js y envía una solicitud para este archivo. El servidor responde con el contenido de Index.html porque no hay enrutamiento en el servidor. Abra las herramientas de desarrollo en su navegador para ver el problema. El servidor responde con los mismos datos (el contenido de Index.html ) para todas las solicitudes. Tienes que implementar el enrutamiento.

 let http = require('http'); let fs = require('fs'); let handleRequest = (request, response) => { let file = 'Index.html'; if (request.url === '/CircleArea.js') { file = 'CircleArea.js'; response.writeHead(200, { 'Content-Type': 'application/javascript', }); } else { response.writeHead(200, { 'Content-Type': 'text/html', }); } fs.readFile('./' + file, null, function (error, data) { if (error) { response.writeHead(404); response.write('Whoops! File not found!'); } else { response.write(data); } response.end(); }); }; http.createServer(handleRequest).listen(8000); console.log('Server running at http://localhost:8000');

Esta es una solución muy básica y simple. Puede usarlo para un enrutamiento muy simple. Para un enrutamiento más complejo, recomiendo un marco como Nest.js

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