Skip to content

Instantly share code, notes, and snippets.

@laggingreflex
Created June 12, 2015 12:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save laggingreflex/eb30a31fd8e1e09a86cf to your computer and use it in GitHub Desktop.
Save laggingreflex/eb30a31fd8e1e09a86cf to your computer and use it in GitHub Desktop.
Node forward path request to another server
// Node forward path request to another server
// http://stackoverflow.com/questions/30800829/node-forward-path-request-to-another-server
var request = require('request');
request = request.defaults({jar: true });
app.all('/blog*', function(req, res, next) {
console.debug('===============');
var jar = request.jar();
var cookie = request.cookie(serializeCookie(req.session.cookies));
var url = 'http://testwp' + req.url.slice(5);
jar.setCookie(cookie, url);
console.debug('start cookie:', jar);
var stream = request({
method: req.method,
url: url,
form: req.body,
jar: jar,
});
stream.pipe(res);
stream.on('end', function(){
var cookies = jar.getCookies(url);
req.session.cookies = cookies;
console.debug('end cookies:', req.session.cookies);
console.debug('===============');
});
});
function serializeCookie(cookie) {
var str = 'key=value;';
if (cookie)
for (key in cookie)
str += key + '=' + cookie[key] + ';';
return str;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment