Как сделать внешние HTTP-запросы с помощью Node.js
Вопрос довольно прост. Я хочу использовать сервер Node.js в качестве прокси для регистрации, аутентификации и перенаправления HTTP-запросов на серверный HTTP-сервер (запросы PUT, GET и DELETE).
Какую библиотеку я должен использовать для этой цели? Боюсь, я не могу найти его.
Ответы
Ответ 1
NodeJS поддерживает http.request как стандартный модуль:
http://nodejs.org/docs/v0.4.11/api/http.html#http.request
var http = require('http');
var options = {
host: 'example.com',
port: 80,
path: '/foo.html'
};
http.get(options, function(resp){
resp.on('data', function(chunk){
//do something with chunk
});
}).on("error", function(e){
console.log("Got error: " + e.message);
});
Ответ 2
Я бы объединил node-http-proxy и express.
node -http-proxy будет поддерживать прокси-сервер внутри вашего веб-сервера node.js через RoutingProxy
(см. пример с запросами прокси в другом http-сервере).
Внутри пользовательской логики сервера вы можете выполнить аутентификацию с помощью экспресс. См. образец auth здесь для примера.
Объединение этих двух примеров должно дать вам то, что вы хотите.
Ответ 3
Недавно я обнаружил REQUESTIFY.
Получить запрос:
requestify.get('http://example.com').then(function(response) {
// Get the response body
response.getBody();
});
Сообщение в Json:
requestify.post('http://example.com', {
hello: 'world'
})
.then(function(response) {
// Get the response body (JSON parsed or jQuery object for XMLs)
response.getBody();
// Get the raw response body
response.body;
});
Надеюсь, что это поможет
Ответ 4
Вы можете использовать встроенный модуль http
для выполнения http.request()
.
Однако, если вы хотите упростить API, вы можете использовать модуль, например superagent
Ответ 5
node -http-proxy - отличное решение, как было предложено выше @hross. Если вы не устарели при использовании node, мы используем NGINX, чтобы сделать то же самое. Он отлично работает с node. Мы используем его, например, для обработки запросов SSL перед отправкой их на node. Он также может обрабатывать маршруты кеширования и пересылки. Ура!
Ответ 6
Для этого вы можете использовать node.js http module. Вы можете проверить документацию на Node.js HTTP.
Вам нужно будет также передать строку запроса на другой HTTP-сервер. Вы должны иметь это в ServerRequest.url.
После того, как у вас есть такая информация, вы можете передать серверу HTTP и порт в качестве опций, которые вы предоставите в http.request()