node 升级URL parse变化
这几天在做Electron的版本升级,项目中的node版本也进行了升级,发现项目中的一个功能出现了问题,代码如下:
let url = "app://test?on=1"
let uri = new URL(url)
console.log(uri)
console.log(process.version)
proces输出主要是为了输出node的版本:
URL {
href: 'app://test?on=1',
origin: 'null',
protocol: 'app:',
username: '',
password: '',
host: 'test',
hostname: 'test',
port: '',
pathname: '',
search: '?on=1',
searchParams: URLSearchParams { 'on' => '1' },
hash: ''
}
v20.18.0
URL {origin: "null", protocol: "test:", username: "", password: "", host: "", …}
hash: ""
host: ""
hostname: ""
href: "test://app?on=1"
origin: "null"
password: ""
pathname: "//app"
port: ""
protocol: "test:"
search: "?on=1"
searchParams: URLSearchParams {}
username: ""
__proto__: URL
v14.16.0
node在针对url的解析在不同版本遵循的标准发生了变化,pathname和host解析不一样 导致之前的代码出现了问题,升级后需要兼容