Подтвердить что ты не робот

Node JS: Автоматический выбор `http.get` vs` https.get`

У меня есть приложение Node JS, которому необходимо загрузить файл, учитывая URL-адрес во время выполнения.

URL может быть либо http://, либо https://.

Как лучше всего обслуживать разные протоколы?

В данный момент у меня есть:

var http = require('http');
var https = require('https');

var protocol = (parsedUrl.protocol == 'https:' ? https : http);
protocol.get(parsedUrl, function(res) {
  ...
});

... но он чувствует себя неуклюжим.

Спасибо!

4b9b3361

Ответ 1

Там есть куча модулей, которые можно использовать вместо request или needle. Они выяснят, какой протокол использовать, и как обрабатывать перенаправления (при необходимости) и т.д.

Ответ 2

У меня была аналогичная потребность, но мне не нужны полноцветные запросы или библиотеки игл, у меня есть следующий код (который немного отличается)

var adapterFor = (function() {
  var url = require('url'),
    adapters = {
      'http:': require('http'),
      'https:': require('https'),
    };

  return function(inputUrl) {
    return adapters[url.parse(inputUrl).protocol]
  }
}());
//.. and when I need it
adapterFor(url).get(url, ...)