微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以使用 require("path").join 安全地连接网址吗?

如何解决我可以使用 require("path").join 安全地连接网址吗?

No.path.join()与 URL 一起使用时会返回不正确的值。

这听起来像你想要new URL()的。来自WHATWG URL 标准

new URL('/one', 'http://example.com/').href    // 'http://example.com/one'
new URL('/two', 'http://example.com/one').href // 'http://example.com/two'

请注意,url.resolve现在在Node 文档标记为已弃用。

正如 Andreas 在评论中正确指出的那样,url.resolve(也已弃用)只有在问题与示例一样简单时才会有所帮助。url.parse也适用于这个问题,因为它通过URL对象返回一致且可预测的格式化字段,从而减少了对“充满 ifs 的代码”的需求。但是,new URL()也是url.parse.

解决方法

这是否可以安全地用于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 的代码的情况下这样做?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。