Chcę, aby adres URL zakodował to:
SELECT name FROM user WHERE uid = me()
Czy muszę do tego pobrać moduł? Mam już moduł żądania.
javascript
url
node.js
TIMEX
źródło
źródło
Odpowiedzi:
Możesz użyć JavaScript
encodeURIComponent
:źródło
decodeURIComponent
to sposób, w jaki dekodujesz zakodowany URI. Nie ma za co.Wbudowany moduł
querystring
jest tym, czego szukasz:źródło
Skorzystaj z
escape
funkcjiquerystring
. Generuje bezpieczny ciąg adresu URL.źródło
querystring.stringify()
(w odpowiedzi Nicolasa) wydaje się teraz zwracać pusty ciąg.querystring.escape()
Metodę tę stosujequerystring.stringify()
i na ogół nie oczekuje się, że będzie stosowana bezpośrednio”.Pamiętaj, że kodowanie URI jest dobre dla części zapytania, nie jest dobre dla domeny. Domena zostaje zakodowana przy użyciu punycode. Potrzebujesz biblioteki takiej jak URI.js do konwersji między URI i IRI (internacjonalizowany identyfikator zasobu).
Jest to poprawne, jeśli planujesz użyć ciągu później jako ciągu zapytania:
Jeśli nie chcesz, aby znaki ASCII, takie jak i
/
, były oznaczone znakiem ucieczki, użyj zamiast tego::
?
encodeURI
Jednak w innych przypadkach użycia może być konieczne użycie uri-js :
źródło
encodeURIComponent (string) zrobi to:
Przekazywanie SQL w ciągu zapytania może nie być dobrym planem,
zobacz ten
źródło