nodejs中URL模块建议用`WHATWG URL Standard`的API,但是会出现invalid url的问题

see311
  • 384

之前使用Node.js的URL的API时,随便传什么url都以解析出来,只不过是有的部分为null而已。
比如:

const url = require('url');
console.log(url.parse('/'))

输出的就是:

Url {
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: null,
  query: null,
  pathname: '/',
  path: '/',
  href: '/' }

当使用WHATWG URL Standard的API的时候,

const {URL} = require('url');
new URL('/')

就会报invalid url的错
这个新的WHATWG URL Standard怎么像之前的api一样用呢?

回复
阅读 3.5k
2 个回答

请遵照官方标准的API使用,传统的url与WHATWG URL Standard接口是不一样的,换句话说就是使用WHATWG URL Standard不能像传统的url一样使用。http://nodejs.cn/api/url.html

new URL(input[, base])接收两个参数。其中base如果“input”是相对URL,则为要解析的基本URL。
也就是说只传'/'是不行的,new URL('/', 'https://example.org/')才可以
我也遇到这个问题,感谢楼上

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏