Skip to content

Instantly share code, notes, and snippets.

@kevinswiber
Created May 18, 2015 19:57
Show Gist options
  • Select an option

  • Save kevinswiber/3bd889b3e3d3dcb490fe to your computer and use it in GitHub Desktop.

Select an option

Save kevinswiber/3bd889b3e3d3dcb490fe to your computer and use it in GitHub Desktop.
Dynamic proxy targets with Argo
var argo = require('argo');
var router = require('argo-url-router');
argo()
.use(router)
.route('/molds/{splat: .*}', function (handle) {
handle('request', function (env, next) {
var targets = {
'google': 'http://google.com',
'yahoo': 'http://yahoo.com'
};
var splitUrl = env.request.url.split('/');
var fragment = splitUrl[2];
if (targets[fragment]) {
env.target.url = targets[fragment] + '/' + splitUrl.slice(3).join('/');
} else {
env.response.statusCode = 404;
}
next(env)
});
handle('response', function (env, next) {
env.response.setHeader('Content-Type', 'application/json')
next(env)
});
})
.listen(process.env.PORT || 3000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment