diff --git a/recipes/modify-post.md b/recipes/modify-post.md index 7b837757..6576c871 100644 --- a/recipes/modify-post.md +++ b/recipes/modify-post.md @@ -8,67 +8,69 @@ Since this only modifys the request body stream the original POST body parameter ## Example: - 'use strict'; - - var express = require('express'); - var ProxyMiddleware = require('http-proxy-middleware'); - var router = express.Router(); - - var proxy_filter = function (path, req) { - return path.match('^/docs') && ( req.method === 'GET' || req.method === 'POST' ); - }; - - var proxy_options = { - target: 'http://localhost:8080', - pathRewrite: { - '^/docs' : '/java/rep/server1' // Host path & target path conversion - }, - onError(err, req, res) { - res.writeHead(500, { - 'Content-Type': 'text/plain' - }); - res.end('Something went wrong. And we are reporting a custom error message.' + err); - }, - onProxyReq(proxyReq, req, res) { - if ( req.method == "POST" && req.body ) { - // Add req.body logic here if needed.... - - // .... - - // Remove body-parser body object from the request - if ( req.body ) delete req.body; - - // Make any needed POST parameter changes - let body = new Object(); - - body.filename = 'reports/statistics/summary_2016.pdf'; - body.routeid = 's003b012d002'; - body.authid = 'bac02c1d-258a-4177-9da6-862580154960'; - - // URI encode JSON object - body = Object.keys( body ).map(function( key ) { - return encodeURIComponent( key ) + '=' + encodeURIComponent( body[ key ]) - }).join('&'); - - // Update header - proxyReq.setHeader( 'content-type', 'application/x-www-form-urlencoded' ); - proxyReq.setHeader( 'content-length', body.length ); - - // Write out body changes to the proxyReq stream - proxyReq.write( body ); - proxyReq.end(); - } +```javascript +'use strict'; + +var express = require('express'); +var ProxyMiddleware = require('http-proxy-middleware'); +var router = express.Router(); + +var proxy_filter = function (path, req) { + return path.match('^/docs') && ( req.method === 'GET' || req.method === 'POST' ); +}; + +var proxy_options = { + target: 'http://localhost:8080', + pathRewrite: { + '^/docs' : '/java/rep/server1' // Host path & target path conversion + }, + onError(err, req, res) { + res.writeHead(500, { + 'Content-Type': 'text/plain' + }); + res.end('Something went wrong. And we are reporting a custom error message.' + err); + }, + onProxyReq(proxyReq, req, res) { + if ( req.method == "POST" && req.body ) { + // Add req.body logic here if needed.... + + // .... + + // Remove body-parser body object from the request + if ( req.body ) delete req.body; + + // Make any needed POST parameter changes + let body = new Object(); + + body.filename = 'reports/statistics/summary_2016.pdf'; + body.routeid = 's003b012d002'; + body.authid = 'bac02c1d-258a-4177-9da6-862580154960'; + + // URI encode JSON object + body = Object.keys( body ).map(function( key ) { + return encodeURIComponent( key ) + '=' + encodeURIComponent( body[ key ]) + }).join('&'); + + // Update header + proxyReq.setHeader( 'content-type', 'application/x-www-form-urlencoded' ); + proxyReq.setHeader( 'content-length', body.length ); + + // Write out body changes to the proxyReq stream + proxyReq.write( body ); + proxyReq.end(); } - }; - - // Proxy configuration - var proxy = ProxyMiddleware( proxy_filter, proxy_options ); - - /* GET home page. */ - router.get('/', function(req, res, next) { - res.render('index', { title: 'Node.js Express Proxy Test' }); - }); - - router.all('/docs', proxy ); - - module.exports = router; + } +}; + +// Proxy configuration +var proxy = ProxyMiddleware( proxy_filter, proxy_options ); + +/* GET home page. */ +router.get('/', function(req, res, next) { + res.render('index', { title: 'Node.js Express Proxy Test' }); +}); + +router.all('/docs', proxy ); + +module.exports = router; +```