Pytanie jest dość proste. Chcę używać serwera Node.js jako serwera proxy do rejestrowania, uwierzytelniania i przekazywania zapytań HTTP do serwera HTTP zaplecza (żądania PUT, GET i DELETE).
Z jakiej biblioteki mam skorzystać w tym celu? Obawiam się, że nie mogę znaleźć.
resp.setEncoding('utf8');
(lub dowolnego kodowania, którego używasz), aby uzyskać dane jako ciągi utf8. Jeśli dobrze zrozumiałem, w przeciwnym razie otrzymasz obiekty Buffer i możesz mieć problemy ze znakami wielobajtowymi, jeśli znak wielobajtowy zostanie podzielony na dwie części. (Właśnie debugowałem na jakiś czas powiązany problem)request
modułu npm znacznie częściej.Połączyłbym węzeł-http-proxy i express .
node-http-proxy będzie obsługiwać proxy wewnątrz twojego serwera sieciowego node.js za pośrednictwem
RoutingProxy
(zobacz przykład o nazwie Żądania proxy na innym serwerze http ).Wewnątrz własnej logiki serwera możesz przeprowadzić uwierzytelnianie za pomocą usługi Express. Zobacz przykład autoryzacji tutaj, aby zobaczyć przykład .
Połączenie tych dwóch przykładów powinno dać ci to, czego chcesz.
źródło
Możesz użyć wbudowanego
http
modułu, aby wykonać plikhttp.request()
.Jeśli jednak chcesz uprościć API, możesz użyć modułu takiego jak superagent
źródło
node-http-proxy to świetne rozwiązanie, jak sugerował @hross powyżej. Jeśli nie jesteś zbyt zajęty korzystaniem z węzła, używamy NGINX do tego samego. Działa naprawdę dobrze z node. Używamy go na przykład do przetwarzania żądań SSL przed przekazaniem ich do węzła. Może również obsługiwać buforowanie i przekazywanie tras. Yay!
źródło
Możesz do tego użyć modułu http node.js. Możesz sprawdzić dokumentację w Node.js HTTP .
Musisz również przekazać ciąg zapytania do innego serwera HTTP. Powinieneś to mieć w ServerRequest.url .
Po uzyskaniu tych informacji możesz przekazać serwer HTTP zaplecza i port w opcjach, które podasz w
http.request()
źródło