Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Error: socket hang up" with Express

Node keeps quitting on me when a client refreshes while still loading a page (so the socket gets terminated, while I am still processing the request). The error:

[ERROR] - Error: socket hang up
   at createHangUpError (http.js:1472:15)
   at Socket.socketCloseListener (http.js:1522:23)
   at Socket.EventEmitter.emit (events.js:95:17)
   at TCP.close (net.js:465:12) (at lib/Maintenance.js:38)

I tried attaching on('error', ... to:

  1. req objects
  2. The return value of listen (I am using Express)
  3. The return value of my get, use and post methods.

And yet, I cannot seem to catch that error; it still gets thrown and none of my error handlers react. What could I possibly be missing?

like image 792
Domi Avatar asked Jan 10 '23 11:01

Domi


1 Answers

Attach error listeners to the socket objects

app.use(function(req, res, next) {
    req.socket.on("error", function() {

    });
    res.socket.on("error", function() {

    });
    next();
});
like image 121
Esailija Avatar answered Jan 16 '23 02:01

Esailija