quitar npmrc node example err configurar javascript node.js express reverse-proxy node-http-proxy

javascript - node - npmrc proxy



solicitud de nodo proxy al nuevo puerto y actuar como proxy inverso (2)

Puede verificar que esto esté funcionando agregando lo siguiente a la solicitud del proxy (como se describe en la respuesta de Remus)

proxy.on(''proxyReq'', function (proxyReq, req, res, options) { res.setHeader(''App-Proxy'', ''proxy''); });

De esta forma puede verificar que su llamada "original" está funcionando contra el nuevo servidor proxy e incluso proporcionar la capacidad de crear un UT, además puede usar la propiedad changeOrigin:true ...

Necesito crear una aplicación que proxies una solicitud del puerto A al puerto B. Por ejemplo, si un usuario se conecta en el puerto 3000, se enrutará (debajo del capó) al puerto 3001, por lo tanto, la aplicación "original" se ejecutará en el puerto 3001 pero en el cliente (navegador) el usuario pondrá el puerto 3000. No redireccionará ...

http://example.com:3000/foo/bar

Se creará un nuevo servidor que escuchará el puerto 3001 y todas las llamadas se realizarán en el puerto 3000 con el nuevo servidor y el nuevo puerto. Dado que el puerto 3000 está realmente ocupado, ¿por mi aplicación de proxy inverso? cómo debería probarlo ...

¿Hay alguna manera de probar esto para verificar que esto esté funcionando, por ejemplo, mediante pruebas unitarias?

Encontré este módulo https://github.com/nodejitsu/node-http-proxy que podría ayudar.


Directamente de los documentos node-http-proxy , esto es bastante simple. Puedes probarlo simplemente haciendo una solicitud HTTP al puerto 3000: si obtienes la misma respuesta que en el puerto 3001, está funcionando:

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);

Le recomiendo que escriba un conjunto de pruebas de integración usando algo como mocha para su proyecto, de esta manera, puede ejecutar sus pruebas tanto en su servidor directamente como en contra de su proxy. Si las pruebas pasan en contra de ambos, entonces puede estar seguro de que su proxy se está comportando como se esperaba.

Una prueba unitaria usando mocha y should.js sería algo como esto:

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 }); }); });

Luego simplemente ejecuta su prueba (una vez que Mocha está instalado):

$ mocha path/to/your/test.js