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:
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(); }); }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')); });Creo que se solucionó cambiando app.use('/', express.static( a app.use(express.static(