Sending a log message with a non-object value for the `req` property to the `bunyan` CLI causes it to crash with an `Object.keys called on non-object` message. This change fixes that.

master
Simon Wade 2014-05-05 16:50:28 +10:00
parent 7b08dd607d
commit 784eb0859f
1 changed files with 12 additions and 5 deletions

View File

@ -754,14 +754,21 @@ function emitRecord(rec, line, opts, stylize) {
var req = rec.req;
delete rec.req;
var headers = req.headers;
if (!headers) {
headers = '';
}
else if (typeof headers === 'string') {
headers = '\n' + headers;
}
else if (typeof headers === 'object') {
headers = '\n' + Object.keys(headers).map(function (h) {
return h + ': ' + headers[h];
}).join('\n');
}
var s = format('%s %s HTTP/%s%s', req.method,
req.url,
req.httpVersion || '1.1',
(headers ?
'\n' + Object.keys(headers).map(function (h) {
return h + ': ' + headers[h];
}).join('\n') :
'')
headers
);
delete req.url;
delete req.method;