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

220
Visualizações
¿Hacer que Express Static deje de estar "pendiente" con el Nodo 14?

Hice esta pregunta hace medio año, pero sigo teniendo el mismo problema: las solicitudes de red Express Static se atascaron en "pendiente"

Tl;dr: Nodo 14 + Modo de visualización de Webpack + Express Static hace que el navegador se cuelgue cada vez que cambio un archivo JS. Esto ocurre en varios navegadores, después de reiniciar el servidor y después de borrar el caché.

Las 2 formas de hacer que el navegador deje de colgarse son:

  • cerrar y volver a abrir la pestaña
  • ir a la página de inicio (http://localhost)

Este problema no ocurre en el Nodo 12. ¿Hay alguna forma de hacer que el navegador deje de bloquearse en el Nodo 14+?

Editar: aquí está mi código Express, trabajando en un repositorio para reproducción:

 const app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cookieParser()); app.use(cors({ origin: HOME_URL, optionsSuccessStatus: 200, })); app.disable('x-powered-by'); app.use('/api', apiRoutes); app.use('/sse', sseRoute); if (process.env.SERVER !== 'production') { app.use('/', express.static( path.resolve('./build/web'), { dotfiles: 'allow' }, )); app.get('*', async (req, res) => { const indexFile = await fs.promises.readFile( path.resolve('./build/web/index.html'), ); res.send(indexFile.toString()); res.end(); }); } else { app.all('*', (req, res, next) => { if (req.secure || !USE_SSL) { next(); } else { res.redirect(`https://${req.hostname}${req.url}`); } }); app.use('/', express.static(path.resolve('../web'))); const indexFile = fs.readFileSync(path.resolve('../web/index.html')).toString(); app.use('*', async (req, res) => { res.send(indexFile); res.end(); }); }
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Si está sirviendo SPA como contenido estático, puede intentar cambiar esta parte:

 app.use('/', express.static(path.resolve('../web'))); const indexFile = fs.readFileSync(path.resolve('../web/index.html')).toString(); app.use('*', async (req, res) => { res.send(indexFile); res.end(); });

con este:

 const path = require('path'); const rootPath = path.normalize(__dirname); // Serve Angular/React frontend files app.use('/', express.static(rootPath + '/web', { redirect: false })); // Rewrite virtual urls to Angular/React app app.get('*', function (req, res, next) { res.sendFile(path.resolve(rootPath + '/web/index.html')); });
over 4 years ago · Santiago Trujillo Relatório

0

Creo que se solucionó cambiando app.use('/', express.static( a app.use(express.static(

over 4 years ago · Santiago Trujillo 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