nodejs的http.get通过提供URI

我一直在阅读的http API,但我找不到一个方法来做一个http.get()只需提供我想访问的URI。

例如,我从客户端接收一个复杂的URI,比如http://abc:1234/d/e ,我想对它做一个GET请求。 问题是,如果我必须设置http.get()方法的options参数,我将最终在复杂的stringparsing中parsinghostportpath 。 而且,我甚至不确定端口总是会被提供。 有没有办法通过只提供完整的URI做一个http.get()

谢谢!

你可以使用url库来做到这一点。

 var parse = require('url').parse; http.get(parse(myurl)); 

将会工作,因为parsing的url对象的属性与http.get期望的选项相同。 这不是一个黑客,如果你看看文档,它说这两个库的devise是相辅相成的。

使用url.parse

 var url = require('url'); var http = require('http'); function download(uri, cb) { http.get(url.parse(uri), cb); }