2013-06-18 7 views
5

Sto usando http-proxy su node.js. Ho una richiesta proxy per un altro server. il mio requisito è che la richiesta proxy debba scadere in 10 secondi. Anche quando il tempo accade fuori, dovrei essere in grado di visualizzare un messaggio personalizzato per l'utentenode.js http-proxy come impostare il timeout e un gestore su richiesta

Ho il codice qui sotto

var proxy = new httpProxy.RoutingProxy(); 
    req.on('error', function (err,req,res){ 
     res.send("An error occured"); 
    }); 
    proxy.proxyRequest(req, res, { 
    host: 'localhost', 
    port: port, 
    headers:req.headers, 
    timeout:10000 
    }) 

Questo imposta il timeout (per motivi non noti, il tempo è scaduto a 17 secondi) ma la richiamata non viene mai eseguita. E 'appena compare il messaggio browser standard

The connection was reset 
      The connection to the server was reset while the page was loading. 

Grazie in anticipo

UPDATE:

ho provato

proxy.on('proxyError', function (err,preq,pres) { 
    pres.writeHead(500, { 'Content-Type': 'text/plain' }); 
    pres.write("An error happened at server. Please contact your administrator."); 
    pres.end(); 
    }); 

Questa volta il metodo viene invocato, ma si lamenta che la la risposta è già stata inviata, quindi non è possibile impostare le intestazioni

risposta

2

Si consiglia di provare questo:

proxy.on('error', function(err, preq, pres){  
    pres.writeHead(500, { 'Content-Type': 'text/plain' }); 
    pres.write("An error happened at server. Please contact your administrator."); 
    pres.end(); 
});