使用 require("path").join
连接 URL 是否安全,例如:
require("path").join("http://example.com", "ok");
//returns 'http://example.com/ok'
require("path").join("http://example.com/", "ok");
//returns 'http://example.com/ok'
如果不是,你会建议如何在不编写充满 if 的代码的情况下这样做?
原文由 Renato Gama 发布,翻译遵循 CC BY-SA 4.0 许可协议
否。
path.join()
与 URL 一起使用时将返回不正确的值。听起来你想要
new URL()
。来自 WHATWG URL 标准:请注意,
url.resolve
现在在 节点文档 中被标记为已弃用。正如 Andreas 在评论中正确指出的那样,
url.resolve
(也 已弃用)只有在问题与示例一样简单时才会有所帮助。url.parse
也适用于这个问题,因为它通过URL
对象返回一致且可预测的格式字段,从而减少了对“充满 ifs 的代码”的需求。但是,new URL()
也是url.parse
的替代品。