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

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

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 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!