这是否可以安全地用于require("path").join连接 URL,例如:
require("path").join
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 的代码的情况下这样做?
No.path.join()与 URL 一起使用时会返回不正确的值。
path.join()
这听起来像你想要new URL()的。来自WHATWG URL 标准:
new 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 文档中标记为已弃用。
url.resolve
正如 Andreas 在评论中正确指出的那样,url.resolve(也已弃用)只有在问题与示例一样简单时才会有所帮助。 url.parse也适用于这个问题,因为它通过URL对象返回一致且可预测的格式化字段,从而减少了对“充满 ifs 的代码”的需求。但是,new URL()也是url.parse.
url.parse
URL