Das Problem: Wenn ich die Express ['statische'] Zeile auskommentieren, läuft der Code einwandfrei. Wenn ich es einfüge (oder die Reihenfolge ändere), bleibt die App eine Weile stehen, bevor sie antwortet.nodejs hängt mit statischen Expressdateien
nachzubilden: Führen Sie die App, einen Browser laden und ständig die Seite zu 127.0.0.1:51783 Aktualisieren gehen (oder verwenden Sie curl), wird die Konsole Sie eine Ausgabe ähnlich geben:
GET/1 ms
Dann, wenn die Timeout-Kicks in und die 15-Anfragen gesendet werden, wird der Server nicht mehr reagiert und Sie erhalten die folgenden:
Server Now Unresponsive but requests queued
GET/35549 ms
app.js
var http = require('http');
var express = require('express');
var app = express.createServer();
app.use(express.logger({ format: '\x1b[1m:method\x1b[0m \x1b[33m:url\x1b[0m :response-time ms' }));
app.use(express.bodyParser());
app.use(express['static'](__dirname + '/')); //Comment me and all works perfectly!
app.listen(51783);
http.globalAgent.maxSockets = 500; //doesn't help
setTimeout(function(){
console.log('Server Now Unresponsive but requests queued');
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15].forEach(function(item){
http.request({host:'http://cnn.com', port:80, path:'/null', method:'GET'}, function(res){
}).on('error', function(e){});
});
},5000);
Ich habe genau das gleiche Problem. Ich nahm an, dass es von einem anderen Teil der Middleware kam, habe es aber jetzt isoliert, um es zu verbinden. Hast du Glück, das am Ende Chillbo zu lösen? –
Wir haben dieses Problem auch. –