好。。。我有一个非常简单的用例。
我有两条线:

var a = 'localhost:3000',
    b = '/whatever/; // this can also be whatever/ or /whatever

我需要分析
url.parse(a, b); // so that it takes care of dealing with slashes

但我知道
localhost:/whatever/ instead of localhost:3000/whatever/

有什么线索吗?
谢谢!

最佳答案

如果您比较以下两个调用,您将看到在字符串前面添加协议会产生很大的差异:

> url.parse('http://localhost:3000', '/whatever/')
{ protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'localhost:3000',
  port: '3000',
  hostname: 'localhost',
  hash: null,
  search: '',
  query: {},
  pathname: '/',
  path: '/',
  href: 'http://localhost:3000/' }
>

没有
> url.parse('localhost:3000', '/whatever/')
{ protocol: 'localhost:',
  slashes: null,
  auth: null,
  host: '3000',
  port: null,
  hostname: '3000',
  hash: null,
  search: '',
  query: {},
  pathname: null,
  path: null,
  href: 'localhost:3000' }
>

您可能希望添加协议,然后使用+而不是,
> url.parse('http://localhost:3000' + '/whatever/')
{ protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'localhost:3000',
  port: '3000',
  hostname: 'localhost',
  hash: null,
  search: null,
  query: null,
  pathname: '/whatever/',
  path: '/whatever/',
  href: 'http://localhost:3000/whatever/' }
>

关于javascript - 如何在nodejs url解析中包含端口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22700336/

10-13 05:39