TypeError: URL is not a constructor,Node不同版本安全写法

本文探讨了在Node.js中遇到的TypeError: URL is not a constructor问题,强调了采用WHATWG API作为更安全的标准,并提供了不同Node版本下的正确使用方式。在Node V10.X及以上版本,可以直接使用全局的URL类,而在V8.x, V6.x版本则需要通过require('url').URL来访问。避免混合使用WHATWG API和Legacy API以确保代码的安全性。" 128103993,5665624,超级节点:Serverless与Serverful的最佳平衡,"['Serverless', 'Kubernetes', '云原生', '腾讯云', '容器']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、两种标准

1. WHATWG API【强烈推荐】

const myURL = new URL('xxxx')

这种写法,采用了目前安全性最好的标准,在解析URLs、域名、IP地址、 application/x-www-form-urlencoded格式及他们的API,有已知的最高的安全性。

2. Legacy API【不安全不推荐】

const myURL = url.parse('xxxx')

Legacy API ,至今NodeJS兼容着该写法。虽然这种方式用起来更为简单一些,但不安全,所以不推荐。
Legacy API 会空格及以下特殊字符串进行encode:

< > " ` \r \n \t { } | \ ^ ' 

仅做这些,安全性绝对比不上WHATWG,https://url.spec.whatwg.org
vscode工具也有提示:@deprecated — since v11.0.0 - Use the WHATWG URL API.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值