Node.js:解析包含端口的url

时间:2013-04-23 02:15:34

标签: node.js url port resolve

我想要解析包含端口的网址。 具体例子:

mainServerURL   ='localhost:8080/';
tempFilesDir    ='/temp';

如果我在这两个变量上调用url.resolve,我会得到

'localhost:/temp'

但我实际上在寻找:

'localhost:8080/temp'

我的代码非常简单,所以我担心我必须使用url.resolve错误(由于我身边的理论错误),但我环顾四周,找不到另一种方法。

当然有弦乐方式,但我猜它是可以避免的?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

通过使用//前缀denoted,网址的主机可以为{{3}}。

> var mainServerURL = '//localhost:8080/';
undefined
> var tempFilesDir  = '/temp';
undefined
> url.resolve(mainServerURL, tempFilesDir)
'//localhost:8080/temp'

没有它,localhost:被视为协议而不是主机名:

> url.parse('localhost:8080/', false, true)
{ protocol: 'localhost:',
  host: '8080',
  port: null,
  hostname: '8080',
  ... }