Repository URL to install this package:
|
Version:
1.0.0 ▾
|
const request = require('request');
const { parse } = require('url');
/**
* @param {string} API - The target host where you want to retrieve data from
* @param {Request} req - Node's request
* @param {Response} res - Node's response
*/
const proxy = API => (req, res) => {
const url = `${API}${parse(req.originalUrl).path}`;
// extract headers, except `host` and `origin`
// eslint-disable-next-line no-unused-vars
const { host, origin, ...headers } = req.headers;
const { method } = req;
let body;
if (req.body && req.headers['content-type'] === 'application/json') {
body = JSON.stringify(req.body);
}
console.log(`Proxying ${method}: ${url}`);
// make a new request, pipe result to response
// encoding by default is undefined
// https://www.npmjs.com/package/request
request({ url, headers, method, body })
.on('error', err => {
// handle pipe errors
req.next(err);
})
.pipe(res);
};
module.exports = proxy;