I'm writing an express.js app and would like to serve certain routes from another server.
Express serves some routes starting with api.example.com/v1/*
. I would like any paths starting with /ad/hoc/
to be forwarded to another server and the response served by Express, e.g. api.example.com/ad/hoc/endpoint.php
would be piped to grampas-lamp-stack.example.com/ad/hoc/endpoint.php
.
I can accomplish this with res.redirect
but I'd like to stream the response through my Express app and avoid redirecting the browser to another IP address.
app.js
var express = require('express');
var app = express();
app.get('/v1/users/:id', UserCtrl.get);
app.get('/v1/users/search', UserCtrl.search);
app.get('/ad/hoc/*', function(req, res) {
res.redirect('http://grampas-lamp-stack.example.com' + req.url);
}
I tried searching "proxy requests express" but I'm not sure if proxy is an accurate term for what I'm doing. If there's a better word for this topic or what I'm trying to accomplish, please let me know.