La pregunta es bastante simple. Quiero usar un servidor Node.js como proxy para registrar, autenticar y reenviar consultas HTTP a un servidor HTTP backend (solicitudes PUT, GET y DELETE).
¿Qué biblioteca debo usar para ese propósito? Me temo que no puedo encontrar uno.
resp.setEncoding('utf8');
(o cualquier codificación que esté usando) para obtener datos como cadenas utf8. Si lo he entendido bien, de lo contrario obtendrá objetos Buffer y podría terminar teniendo problemas con los caracteres de varios bytes si un carácter de varios bytes se divide en dos partes. (Acabo de depurar un problema relacionado por un tiempo)request
módulo npm mucho más.Combinaría node-http-proxy y express .
node-http-proxy admitirá un proxy dentro de su servidor web node.js a través de
RoutingProxy
(consulte el ejemplo llamado Solicitudes de proxy dentro de otro servidor http ).Dentro de la lógica de su servidor personalizado, puede realizar la autenticación mediante express. Vea el ejemplo de autenticación aquí para ver un ejemplo .
La combinación de esos dos ejemplos debería darle lo que desea.
fuente
Puede utilizar el
http
módulo integrado para realizar unahttp.request()
.Sin embargo, si desea simplificar la API, puede usar un módulo como superagent
fuente
node-http-proxy es una gran solución como sugirió @hross arriba. Si no está seguro de usar el nodo, usamos NGINX para hacer lo mismo. Funciona muy bien con node. Lo usamos, por ejemplo, para procesar solicitudes SSL antes de reenviarlas al nodo. También puede manejar rutas de reenvío y almacenamiento en caché. ¡Hurra!
fuente
Puede usar el módulo http de node.js para hacer eso. Puede consultar la documentación en Node.js HTTP .
Debería pasar la cadena de consulta también al otro servidor HTTP. Deberías tener eso en ServerRequest.url .
Una vez que tenga esa información, puede pasar al servidor HTTP backend y al puerto las opciones que proporcionará en el
http.request()
fuente