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

231
Vistas
¿Por qué nodejs no me permite acceder a otra ruta cuando accedo a la ruta raíz?

Estoy usando el módulo HTTP de nodejs para crear tres rutas ('/', '/about' y la última trata cualquier otra ruta que no esté definida como ruta de error). Cuando accedo a la ruta raíz primero e intento acceder a otros nodos de ruta, aparece un error, pero cuando accedo a la ruta de error o sobre la ruta e intento acceder a otra ruta, funciona bien.

A continuación se muestra el código que escribí y el error nodejs throw

Error

 PS C:\Users\Maxwell\Desktop\node> node app.js node:events:368 ^ Error [ERR_STREAM_WRITE_AFTER_END]: write after end at new NodeError (node:internal/errors:371:5) at ServerResponse.end (node:_http_outgoing:846:15) at Server.<anonymous> (C:\Users\Maxwell\Desktop\node\app.js:10:9) at Server.emit (node:events:390:28) at parserOnIncoming (node:_http_server:951:12) at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17) Emitted 'error' event on ServerResponse instance at: at emitErrorNt (node:_http_outgoing:726:9) at processTicksAndRejections (node:internal/process/task_queues:84:21) { code: 'ERR_STREAM_WRITE_AFTER_END' } PS C:\Users\Maxwell\Desktop\node> node app.js node:events:368 throw er; // Unhandled 'error' event ^ Error [ERR_STREAM_WRITE_AFTER_END]: write after end at new NodeError (node:internal/errors:371:5) at ServerResponse.end (node:_http_outgoing:846:15) at Server.<anonymous> (C:\Users\Maxwell\Desktop\node\app.js:10:9) at Server.emit (node:events:390:28) at parserOnIncoming (node:_http_server:951:12) at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17) Emitted 'error' event on ServerResponse instance at: at emitErrorNt (node:_http_outgoing:726:9) at processTicksAndRejections (node:internal/process/task_queues:84:21) { code: 'ERR_STREAM_WRITE_AFTER_END' }

Código

 const http = require('http'); const server = http.createServer((req,res)=>{ if(req.url==='/'){ res.end('Welcome Home Dev, You are loved'); } if(req.url==='/about'){ res.end('This is the about page') } res.end( `<h1>OOOp</h1> <p>It seen like this page does not exit</p> <a href='/'>back to homepage</a> ` ); }); server.listen(5000);
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cambie a if/else para que solo esté procesando una rama del if por solicitud:

 const server = http.createServer((req,res)=>{ if(req.url === '/'){ res.end('Welcome Home Dev, You are loved'); } else if (req.url === '/about') { res.end('This is the about page') } else { res.end( `<h1>OOOp</h1> <p>It seen like this page does not exit</p> <a href='/'>back to homepage</a>`); } });

O, alternativamente, puede agregar un return después de cada res.send() para detener la ejecución adicional en su controlador de solicitudes después de enviar una respuesta. Recuerde que solo porque llama a res.send() , su función aún continúa ejecutándose, por lo que debe administrar el flujo de control para que el otro código que envía una respuesta no se ejecute una vez que ya haya enviado una respuesta.

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