Ceci peut être accompli par une combinaison de l'option de Node chemin y URL :
-
Exigez les paquets :
const nodeUrl = require('url')
const nodePath = require('path')
-
Commencez par créer un objet URL avec lequel vous pourrez travailler :
const myUrl = new nodeUrl.URL('https://example.com')
-
Utilice pathname=
y path.join
pour construire toutes les combinaisons possibles :
myUrl.pathname = nodePath.join('/search', 'for', '/something/')
'/search/for/something/'
(vous pouvez voir comment le libéral path.join
est avec des arguments)
-
À ce stade, votre URL reflète le résultat final souhaité :
myUrl.toString()
'https://example.com/search/for/something/'
Pourquoi cette approche ?
Cette technique utilise des bibliothèques intégrées. Moins il y a de dépendances avec des tiers, mieux c'est, en ce qui concerne les CVE, la maintenance, etc.
Rien ne sera plus prouvé ou mieux testé que les libéraux standards.
PS : Ne manipulez jamais les URL comme des chaînes de caractères !
Quand je révise du code, je suis intransigeant sur ne jamais manipuler manuellement les URL en tant que chaînes de caractères . D'abord, regardez comme c'est compliqué la spécification est .
Deuxièmement, l'absence/présence d'une barre oblique traçante/préfixe ( /
) ne doit pas tout casser ! Vous ne devriez jamais le faire :
const url = `${baseUrl}/${somePath}`
et surtout pas :
uri: host + '/' + SAT_SERVICE + '/' + CONSTELLATION + '/',
Dont j'ai vu.