mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 21:19:50 +01:00
8a6fab02ad
Server requests aka. IncomingMessage emits 'aborted' instead of 'error' which causes confusion when the object is used as a regular stream, i.e. if functions working on streams are passed a server request object they might not work properly unless they take this into account. Refs: https://github.com/nodejs/web-server-frameworks/issues/41 PR-URL: https://github.com/nodejs/node/pull/33172 Fixes: https://github.com/nodejs/node/issues/28172 Refs: https://github.com/nodejs/node/pull/28677 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const http = require('http');
|
|
|
|
{
|
|
let serverRes;
|
|
const server = http.Server(function(req, res) {
|
|
res.write('Part of my res.');
|
|
serverRes = res;
|
|
});
|
|
|
|
server.listen(0, common.mustCall(function() {
|
|
http.get({
|
|
port: this.address().port,
|
|
headers: { connection: 'keep-alive' }
|
|
}, common.mustCall(function(res) {
|
|
server.close();
|
|
serverRes.destroy();
|
|
res.on('aborted', common.mustCall());
|
|
res.on('error', common.expectsError({
|
|
code: 'ECONNRESET'
|
|
}));
|
|
}));
|
|
}));
|
|
}
|
|
|
|
{
|
|
// Don't crash of no 'error' handler.
|
|
let serverRes;
|
|
const server = http.Server(function(req, res) {
|
|
res.write('Part of my res.');
|
|
serverRes = res;
|
|
});
|
|
|
|
server.listen(0, common.mustCall(function() {
|
|
http.get({
|
|
port: this.address().port,
|
|
headers: { connection: 'keep-alive' }
|
|
}, common.mustCall(function(res) {
|
|
server.close();
|
|
serverRes.destroy();
|
|
res.on('aborted', common.mustCall());
|
|
}));
|
|
}));
|
|
}
|