1. ホーム
  2. node.js

[解決済み] require("path").join を使って安全に URL を連結することはできますか?

2022-04-23 20:15:07

質問

これは安全に使用できますか? 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でいっぱいのコードを書かずにこれを行うには、どのような方法があるでしょうか?

どのように解決するのですか?

いいえ。 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 は、現在では非推奨とされています。 ノードに関する文書 .

Andreasがコメントで正しく指摘しているように。 url.resolve (また 非推奨 ) は、問題がこの例のように単純である場合にのみ役立ちます。 url.parse は、一貫して予測可能なフォーマットされたフィールドを返すので、この質問にも当てはまります。 URL オブジェクトは、ifs"でいっぱいのコードの必要性を減らすことができます。しかし new URL() の置き換えでもあります。 url.parse .