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

236
Visualizações
¿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 Respostas
Responde à pergunta

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