节点JS:自动select“http.get”与“https.get”
我有一个节点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) { ... });
…但感觉笨重。
谢谢!
有一堆你可以使用的模块,如请求或针 。 他们会找出使用哪个协议,以及如何处理redirect(如果需要)等。
我有类似的需求,但不需要完整的请求或针库,我有以下代码(这是稍有不同)
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, ...)