Skip to content

Commit

Permalink
full req/res log prints encoded body
Browse files Browse the repository at this point in the history
  • Loading branch information
refractalize committed Apr 11, 2019
1 parent e19479f commit 20e6243
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 14 deletions.
6 changes: 3 additions & 3 deletions middleware/formServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ var isStream = require('../isStream')
var setBodyToString = require('../setBodyToString')
var setHeaderTo = require('../setHeaderTo')
var shouldParseAs = require('../shouldParseAs')
var streamToString = require('../streamToString')
var readBodyAsString = require('../readBodyAsString')
var querystringLite = require('../querystring-lite')

module.exports = middleware('form', function (request, next) {
Expand All @@ -15,9 +15,9 @@ module.exports = middleware('form', function (request, next) {

return next().then(function (response) {
if (shouldParseAs(response, 'form', request)) {
return streamToString(response.body).then(function (body) {
return readBodyAsString(response).then(function () {
var querystring = request.options.qs || querystringLite
response.body = querystring.parse(body)
response.body = querystring.parse(response.stringBody)
return response
})
} else {
Expand Down
6 changes: 3 additions & 3 deletions middleware/jsonServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ var isStream = require('../isStream')
var setBodyToString = require('../setBodyToString')
var setHeaderTo = require('../setHeaderTo')
var shouldParseAs = require('../shouldParseAs')
var streamToString = require('../streamToString')
var readBodyAsString = require('../readBodyAsString')

module.exports = middleware('json', function (request, next) {
if (request.body instanceof Object && !isStream(request.body)) {
Expand All @@ -15,8 +15,8 @@ module.exports = middleware('json', function (request, next) {

return next().then(function (response) {
if (shouldParseAs(response, 'json', request)) {
return streamToString(response.body).then(function (jsonString) {
response.body = JSON.parse(jsonString, request.options.jsonReviver)
return readBodyAsString(response).then(function () {
response.body = JSON.parse(response.stringBody, request.options.jsonReviver)
return response
})
} else {
Expand Down
2 changes: 0 additions & 2 deletions middleware/log.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ function logResponse (response) {
}

module.exports = middleware('log', function (request, next) {
request.logBody = request.body

var promise = next()

if (debugResponse.enabled) {
Expand Down
5 changes: 2 additions & 3 deletions middleware/prepareForLogging.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
var obfuscateUrlPassword = require('../obfuscateUrlPassword')
var isStream = require('../isStream')

module.exports = function prepareForLogging (r) {
return removeUndefined({
method: r.method,
url: r.url && obfuscateUrlPassword(r.url),
headers: obfuscateHeaders(r.headers),
body: isStream(r.logBody) ? '[Stream]' : r.logBody,
headers: r.headers && obfuscateHeaders(r.headers),
body: r.stringBody !== undefined ? r.stringBody : r.body ? '[Stream]' : undefined,
statusCode: r.statusCode,
statusText: r.statusText
})
Expand Down
6 changes: 3 additions & 3 deletions middleware/textServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ var middleware = require('./middleware')
var setBodyToString = require('../setBodyToString')
var setHeaderTo = require('../setHeaderTo')
var shouldParseAs = require('../shouldParseAs')
var streamToString = require('../streamToString')
var readBodyAsString = require('../readBodyAsString')

module.exports = middleware('text', function (request, next) {
if (typeof request.body === 'string') {
Expand All @@ -12,8 +12,8 @@ module.exports = middleware('text', function (request, next) {

return next().then(function (response) {
if (shouldParseAs(response, 'text', request)) {
return streamToString(response.body).then(function (body) {
response.body = body
return readBodyAsString(response).then(function () {
response.body = response.stringBody
return response
})
} else {
Expand Down
7 changes: 7 additions & 0 deletions readBodyAsString.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
var streamToString = require('./streamToString')

module.exports = function (r) {
return streamToString(r.body).then(function (string) {
r.stringBody = string
})
}
1 change: 1 addition & 0 deletions setBodyToString.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ var stringToStream = require('./stringToStream')
module.exports = function (r, s) {
r.body = stringToStream(s)
r.headers['content-length'] = Buffer.byteLength(s, 'utf-8')
r.stringBody = s
}

0 comments on commit 20e6243

Please sign in to comment.