Główne różnice między req.query
i req.param
w Express
- Czym się różnią od siebie
- Kiedy używać i w jakich przypadkach
Załóżmy, że klient w żądaniu wysyła, powiedzmy, parę Android (klucz, wartość)… którego użyć?
[EDYTOWAĆ]
Załóżmy, że android wysyła żądanie POST -> Intencją jest wysłanie (klucz, wartość) do klienta, a serwer powinien wykonać zapytanie do bazy danych na podstawie wartości na serwerze i zwrócić odpowiedź JSON
Spójrz na to pytanie :: dla programu i odwołuje: : prosty program Express, dla zapytań wynik
req.query
ireq.param
?Odpowiedzi:
req.query
zwróci obiekt JS po przeanalizowaniu ciągu zapytania./ user? name = tom & age = 55 -
req.query
dałoby{name:"tom", age: "55"}
req.params
zwróci parametry w dopasowanej trasie. Jeśli twoja trasa to / user /: id i wyślesz żądanie do / user / 5 -req.params
da{id: "5"}
req.param
to funkcja, która usuwa parametry z żądania. Wszystko to można znaleźć tutaj .AKTUALIZACJA
Jeśli czasownik to a
POST
i używaszbodyParser
, powinieneś być w stanie uzyskać treść formy, z którą funkcjonujeszreq.body
. Będzie to przeanalizowana wersja JSPOST
formularza ed.źródło
req.query
to ciąg zapytania wysyłany do serwera, przykład/page?
test = 1 ,req.param
to parametry przekazywane do programu obsługi.app.get('/user/:id', handler);
, zamierzając/user/blah
,req.param.id
wróciblah
;źródło
req.data
, jeśli GET, to będziereq.param
c.Param("id") == ""
Sugerowałbym użycie następujących
req.param('<param_name>')
req.param ("") działa w następujący sposób
Wyszukiwanie jest wykonywane w następującej kolejności:
Dla przejrzystości należy preferować bezpośredni dostęp do req.body, req.params i req.query - chyba że naprawdę akceptujesz dane wejściowe z każdego obiektu.
Ref: http://expressjs.com/4x/api.html#req.param
źródło
Przekazywanie parametrów
GET request to "/cars/honda"
zwraca listę modeli samochodów Honda
Przekazywanie zapytania
GET request to "/car/honda?color=blue"
zwraca listę modeli samochodów Honda, ale są one filtrowane, więc zwracane są tylko modele z kolorem niebieskim.
Nie ma sensu dodawać tych filtrów do parametrów URL (/ samochód / honda / kolor / niebieski), ponieważ według REST oznaczałoby to, że chcemy uzyskać garść informacji o kolorze „niebieskim”. Ponieważ to, czego naprawdę chcemy, to przefiltrowana lista modeli Hondy, używamy ciągów zapytań do filtrowania wyników, które zostaną zwrócone.
Zwróć uwagę, że ciągi zapytań to w rzeczywistości tylko pary {klucz: wartość} w nieco innym formacie:? Klucz1 = wartość1 & klucz2 = wartość2 & klucz3 = wartość3.
źródło