v16 hapi example decorate redirect proxy hapijs

redirect - example - install hapi js



Hapi.js redirigir desde onRequest (1)

Está bien, así que se me ocurrió la siguiente solución:

server.on(''onRequest'',function(request,reply) { if(request.headers.customHeader) { request.setUrl(''/redirect''); } reply(); });

y luego creé un controlador de ruta que solo representará por proxy la solicitud:

{ method : ''*'', path : ''/redirect'', config : { payload : { output : ''stream'', parse : false, }, handler : function(request,reply) { var url = ''https://customUrl.com''; reply.proxy({''uri'' : url, passThrough : true}); } } }

En lo anterior, tuve que hacer un setUrl en ''onResponse'' porque ese es el único lugar donde puedo hacer eso según los hapijs docs. En segundo lugar, transmití los valores adecuados en ''/ redirect'' para que la redirección de proxy funcione correctamente.

Todavía esperaré a alguien que pueda proporcionarme una mejor solución que esta.

Estoy usando hapi v6.11.1 y he estado intentando redirigir de manera condicional la solicitud inminente desde mi servidor hapi.js a otro servidor. Esto es lo que he trie hasta ahora:

server.on(''onRequest'',function(request,reply) { if(request.headers.customHeader) { // redirect only if header found reply(''custom header redirection'').redirect(''http://someurl.com''); return; } reply(); });

pero la solución anterior no funcionará y aún golpea mi servidor en lugar del que especifico.

Intenté hacer reply.proxy () en el controlador ''onRequest'' y obtuve el siguiente error:

Error: error no capturado: no se puede realizar un proxy si se analiza la carga útil o si la salida no es flujo ni datos

Al tratar de encontrar una solución, me encontré con lo siguiente de los documentos de hapi.js:

Disponible solo dentro del método del controlador y solo antes de que se invoque uno de reply (), reply.file (), reply.view (), reply.close (), reply.proxy () o reply.redirect ().

pero el problema es que tengo alrededor de 100 rutas y ahora tendré que cambiar el controlador para cada una de las solicitudes para permitir el proxy si se cumple mi condición, lo que no quiero hacer.

Me alegrará si hay alguno de los siguientes posibles:

  1. Redirigir la solicitud desde ''onResponse'' a otro dominio y no cambiar la función del manejador.

  2. Método de servidor que me permite configurar todas las rutas de configuración e inyectar la redirección de proxy en eso.

Gracias.