-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproxy-request.js
More file actions
48 lines (41 loc) · 1.46 KB
/
Copy pathproxy-request.js
File metadata and controls
48 lines (41 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
var request = require('request');
module.exports = (function ProxyRequest () {
return function proxy_request (req, res, next) {
var ip = req.headers.ip;
if (!ip) {
return next();
}
var url = req.url;
var method = req.method;
var query = req.query;
var body = req.body;
var headers = req.headers;
headers["X-Forwarded-For"] = req.ip;
delete headers.ip;
delete headers.hash;
delete headers.id;
//console.log("Proxying request to: " + method + " " + "http://" + ip + url + " with " + (method === "GET" ? "qs:" : "body:"));
//console.log((method === "GET" ? query : body));
//console.log("Headers:");
//console.log(headers);
request({
url: "http://" + ip + url,
method: method,
headers: headers,
qs: query,
json: body
}, function (error, response, json) {
if (error || !response) {
response = response || {};
if (response.statusCode) {
//console.log("Status code: " + response.statusCode);
}
console.error(error || response.statusCode);
return next(error || response.statusCode);
}
//console.log("Status code: " + response.statusCode);
//console.log(json);
return res.json(json);
});
};
})();