//var out = new PassThrough(); this.request(sql).on('error', function (e) { out.emit('error', e); }).on('headers', function (e) { out.emit('headers', e); }).on('code', function (e) { if (e > 299) { var data = []; this.on('data', function (d) { data.push(d); }).on('finish', function () { var err = Buffer.concat(data).toString(); debugrs(err); debugrs(sql); out.emit('error', new Error(err)); }); } else { this.pipe(out); } out.emit('code', e); });