Ответ 1
Прямо от node-http-proxy
docs, это довольно просто. Вы можете протестировать его просто, сделав HTTP-запрос на порт 3000 - если вы получите тот же ответ, что и на порт 3001, он работает:
var http = require('http'),
httpProxy = require('http-proxy');
//
// Create a proxy server with custom application logic
//
var proxy = httpProxy.createProxyServer({});
var server = http.createServer(function(req, res) {
// You can define here your custom logic to handle the request
// and then proxy the request.
proxy.web(req, res, {
// Your real Node app
target: 'http://127.0.0.1:3001'
});
});
console.log("proxy listening on port 3000")
server.listen(3000);
Я настоятельно рекомендую вам написать набор интеграционных тестов, используя что-то вроде mocha для вашего проекта - таким образом, вы можете запускать свои тесты как против вашего сервера, так и против вашего прокси. Если тесты проходят против обоих, то вы можете быть уверены, что ваш прокси-сервер ведет себя как ожидалось.
A unit test с помощью mocha и should.js будет выглядеть примерно так:
var should = require('should');
describe('server', function() {
it('should respond', function(done) {
// ^ optional synchronous callback
request.get({
url: "http://locahost:3000"
// ^ Port of your proxy
}, function(e, r, body) {
if (e)
throw new Error(e);
body.result.should.equal("It works!");
done(); // call the optional synchronous callback
});
});
});
Затем вы просто запускаете свой тест (как только установлен Mocha):
$ mocha path/to/your/test.js