Czy istnieje różnica między uzyskiwaniem argumentów QUERY_STRING za pośrednictwem req.query[myParam]
i req.params.myParam
? Jeśli tak, kiedy należy użyć których?
node.js
query-string
Pavindu
źródło
źródło
req.param
jest teraz przestarzała. Node sugeruje użyciereq.query
lubreq.params
Biorąc pod uwagę tę trasę
i mając ten adres URL
http://www.google.com/hi/there?qs1=you&qs2=tube
Będziesz miał:
req. pytanie
req. params
Express req. Parametry >>
źródło
/
Załóżmy, że zdefiniowałeś nazwę swojej trasy w następujący sposób:
który stanie się:
Tutaj, jeśli wydrukujesz: request.params
więc
więc request.params jest obiektem zawierającym właściwości podanej trasy
i request.query pochodzi z parametrów zapytania w adresie URL, np .:
request.query
więc
źródło
Powinieneś być teraz w stanie uzyskać dostęp do zapytania przy użyciu notacji kropkowej.
Jeśli chcesz uzyskać dostęp, powiedz, że otrzymujesz żądanie GET pod adresem
/checkEmail?type=email&utm_source=xxxx&email=xxxxx&utm_campaign=XX
i chcesz pobrać użyte zapytanie .Parametry są używane dla zdefiniowanego przez siebie parametru do odbierania żądania, na przykład (przykład):
źródło
Chciałbym wspomnieć o jednej ważnej uwadze dotyczącej
req.query
, ponieważ obecnie pracuję nad funkcjonalnością paginacji w oparciu oreq.query
i mam jeden ciekawy przykład do zademonstrowania ...Przykład:
Zauważysz
+
znak przedreq.query.pageSize
ireq.query.currentPage
Czemu? Jeśli usuniesz
+
w tym przypadku, pojawi się błąd, który zostanie wyrzucony, ponieważ użyjemy nieprawidłowego typu (z komunikatem o błędzie pole „limit” musi być numeryczne).Ważne : Domyślnie, jeśli wyodrębniasz coś z tych parametrów zapytania, zawsze będzie to ciąg znaków , ponieważ pochodzi z adresu URL i jest traktowany jako tekst.
Jeśli musimy pracować z liczbami i konwertować zapytania z tekstu na liczbę, możemy po prostu dodać znak plus przed instrukcją.
źródło