Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

202
Vistas
NodeJS: ¿La función Server.on-listener no existe al exportar?

Estoy usando server.js para iniciar el servidor y router.js para escuchar las solicitudes. Cuando trato de acceder al servidor, no pasa nada y no puedo alcanzarlo, supongo que sí, porque la función server.on no se ejecuta. Todo funciona, cuando lo puse solo en server.js aunque, por lo que el error parece estar relacionado con las exportaciones/importaciones, pero no puedo entender qué es.

servidor.js:

 const fs = require("fs"); const http = require("http"); const template = require("./template.js"); const port = 3000; const server = http.createServer(); server.listen(port, () => { console.log(`Server listening on localhost:${port}`); }) module.exports = server;

enrutador.js:

 const server = require("./server.js"); const template = require("./template.js"); server.on("request", (req, res) => { let url = req.url; let method = req.method; let html; console.log("received req"); res.writeHead(200, { "content-type": "text/html; charset=utf-8" }); if(url.endsWith("/feedback") && method == "GET") { html = template.createHtml("Liste der Feedbacks"); } else { html = template.createHtml(`Methode: ${method}, URL: ${url}`); } res.end(html); })
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si desea importar el router.js y tener el objeto del server accesible en ese archivo y ejecutar el método on en él, una forma de hacerlo es pasar el server y solicitar el archivo router.js de la siguiente manera:

servidor.js:

 const fs = require("fs"); const http = require("http"); const port = 3000; const server = http.createServer(); const router = require("./router.js")( server ); server.listen(port, () => { console.log(`Server listening on http://localhost:${port}`); });

enrutador.js:

 const template = require("./template.js"); module.exports = function handleRequest( server ){ return server.on("request", (req, res) => { let url = req.url; let method = req.method; let html; console.log("received req"); res.writeHead(200, { "content-type": "text/html; charset=utf-8" }); if(url.endsWith("/feedback") && method == "GET") { html = template.createHtml("Liste der Feedbacks"); } else { html = template.createHtml(`Methode: ${method}, URL: ${url}`); } res.end(html); }) }

Independientemente del patrón que pruebe, asegúrese de evitar las dependencias circulares .

Además, como recomendación general, le sugiero que intente evitar tight coupling en módulos como estos siempre que sea posible. Idealmente, el módulo del router no debería estar estrechamente acoplado al módulo del server .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda