Serveur proxy Node.js
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Serveur HTTP mandataire (proxy) |
| Écosystème | Node.js |
| Modules | http, request
|
| Voir aussi | Node.js |
Exemple de serveur HTTP mandataire (proxy) écrit en Node.js. Le serveur relaie les requêtes vers leur destination et peut, au passage, inspecter ou réécrire le corps des réponses. Ce type de montage sert notamment à tracer ou modifier le trafic d'une application à des fins d'analyse.
Script
var http = require('http'),
request = require('request'),
port = 8000;
http.createServer(function (req, res) {
console.log('Proxying url [' + req.url + ']');
if (req.url.indexOf('http://exemple.tld/api') !== -1 && req.method === 'GET') {
request(req.url, function (err, response, body) {
// Décommenter pour tracer le contenu circulant dans le proxy :
// console.log(body);
for (var header in response.headers) {
res.setHeader(header, response.headers[header]);
}
res.statusCode = response.statusCode;
// Réécriture du corps de la réponse (exemple)
body = body.replace(/"lives":\d+/gi, '"lives":5');
res.write(body);
res.end();
});
} else {
req.pipe(request(req.url)).pipe(res);
}
}).listen(port);
console.log('Proxy running on port ' + port);