Commit 652cca37 authored by indexzero's avatar indexzero

[api] Manual merge of #46: add custom `proxyError` event and enable production error handling.

parent bd45216b
......@@ -370,10 +370,28 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) {
//
function proxyError(err) {
errState = true;
//
// Emit an `error` event, allowing the application to use custom
// error handling. The error handler should end the response.
//
if (self.emit('proxyError', err, req, res)) {
return;
}
res.writeHead(500, { 'Content-Type': 'text/plain' });
if (req.method !== 'HEAD') {
res.write('An error has occurred: ' + JSON.stringify(err));
//
// This NODE_ENV=production behavior is mimics Express and
// Connect.
//
if (process.env.NODE_ENV === 'production') {
res.write('Internal Server Error');
}
else {
res.write('An error has occurred: ' + JSON.stringify(err));
}
}
res.end();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment