-
Notifications
You must be signed in to change notification settings - Fork 79
compat: stream:error -> [res|res]:error broadcasting #168
Comments
I'm not convinced that: response.stream.on('error', () => {
if (response.stream.destroyed === false) {
response.writeHead(500, {'content-type': 'text/plain'})
response.end('Internal Server Error')
}
})
response.stream.respondWithFile('/my/file/path', response.getHeaders()) Is nice, specifically on the request.on('error', noop)
response.on('error', noop) is also very bad practice. Errors on the underlining socket bubble up differently in |
@mcollina Apologies for the confusion. I totally agree, the |
@jasnell can you please have a look? |
I'm thinking that for the compatibility layer, errors that are happening on the server side should likely only be broadcast to the |
I'm using
Http2Stream.respondWithFile
from an app that also uses the compatibility layer. Error handling is getting pretty bloated, IMO, because the stream error event is broadcasted to both request and response.Current code:
Desired code:
What would be needed is to rename or stop propagating stream error events. It's a very simple change in the two error event handlers (for res and req). However I'm hesitant because I don't know what the thought process was behind that broadcasting.
Perhaps related,
socket:error
events do not seem to bubble up to the req/res instances in the http1 layer.@jasnell @mcollina Thoughts?
The text was updated successfully, but these errors were encountered: