これは、ノードのパスとURLの組み合わせによって実現できます。
- パッケージが必要です:
const nodeUrl = require('url')
const nodePath = require('path')
- 操作する URL オブジェクトを作成することから始めます。
> const myUrl = new nodeUrl.URL('https://example.com')
- と を使用
pathname=
しpath.join
て、可能な組み合わせを作成します。
> myUrl.pathname = nodePath.join('/search', 'for', '/something/')
'/search/for/something/'
(議論でいかにリベラルかがわかりpath.join
ます)
- この時点で、URL は最終的に望ましい結果を反映しています。
> myUrl.toString()
'https://example.com/search/for/something/'
なぜこのアプローチ?
この手法では、組み込みライブラリを使用します。CVEやメンテナンスなどに関しては、サードパーティの依存関係が少ないほど良い.
標準ライブラリほど実証済みまたはテスト済みのものはありません。
PS: URL を文字列として操作しないでください。
コードをレビューするとき、URL を文字列として手動で操作することは絶対にしないと断言しています。まず、仕様がいかに複雑かを見てください。
第二に、末尾/接頭辞付きのスラッシュ ( ) の有無によって、/
すべてが壊れるわけではありません。あなたは決してすべきではありません:
const url = `${baseUrl}/${somePath}`
特にそうではありません:
uri: host + '/' + SAT_SERVICE + '/' + CONSTELLATION + '/',
私が見たもの。