Hauptunterschiede zwischen req.query
und req.param
in Express
- Wie unterscheiden sich beide voneinander?
- Wann dann in welchen Fällen zu verwenden
Angenommen, ein Client sendet in der Anfrage beispielsweise ein Android-Paar (Schlüssel, Wert). Welches soll verwendet werden?
[BEARBEITEN]
Angenommen, Android sendet eine POST-Anfrage -> Es soll (Schlüssel, Wert) an den Client gesendet werden, und der Server sollte eine Datenbankabfrage basierend auf dem Wert auf dem Server durchführen und eine JSON-Antwort zurückgeben
Schauen :: diese Frage für das Programm i verwiesen: : Einfaches Express - Programm für ein Ergebnis der Abfrage
req.query
undreq.param
?Antworten:
req.query
Gibt ein JS-Objekt zurück, nachdem die Abfragezeichenfolge analysiert wurde./ user? name = tom & age = 55 -
req.query
würde ergeben{name:"tom", age: "55"}
req.params
gibt Parameter in der übereinstimmenden Route zurück. Wenn Sie Ihre Route ist / user /: id und Sie eine Anfrage an / user / 5 -req.params
ergäbe{id: "5"}
req.param
ist eine Funktion, die Parameter aus der Anforderung herauszieht. All dies finden Sie hier .AKTUALISIEREN
Wenn das Verb a ist
POST
und Sie verwendenbodyParser
, sollten Sie in der Lage sein, den Formkörper in Ihrer Funktion zu erhaltenreq.body
. Dies ist die analysierte JS-Version desPOST
ed-Formulars.quelle
req.query
ist die an den Server gesendete Abfragezeichenfolge, Beispiel/page?
test = 1 ,req.param
sind die an den Handler übergebenen Parameter.app.get('/user/:id', handler);
, Gehen/user/blah
,req.param.id
zurückkehren würdeblah
;quelle
req.data
, wenn es GET t wird inreq.param
c.Param("id") == ""
Ich würde vorschlagen, folgendes zu verwenden
req.param('<param_name>')
req.param ("") funktioniert wie folgt
Die Suche wird in der folgenden Reihenfolge durchgeführt:
Der direkte Zugriff auf req.body, req.params und req.query sollte aus Gründen der Übersichtlichkeit bevorzugt werden - es sei denn, Sie akzeptieren wirklich Eingaben von jedem Objekt.
Ref: http://expressjs.com/4x/api.html#req.param
quelle
Parameter übergeben
GET request to "/cars/honda"
gibt eine Liste der Honda-Automodelle zurück
Abfrage übergeben
GET request to "/car/honda?color=blue"
Gibt eine Liste der Honda-Automodelle zurück, die jedoch gefiltert sind, sodass nur Modelle mit der Standardfarbe Blau zurückgegeben werden.
Es ist nicht sinnvoll, diese Filter in die URL-Parameter (/ car / honda / color / blue) einzufügen, da dies laut REST bedeuten würde, dass wir eine Reihe von Informationen über die Farbe "blau" erhalten möchten. Da wir wirklich eine gefilterte Liste von Honda-Modellen wollen, verwenden wir Abfragezeichenfolgen, um die zurückgegebenen Ergebnisse herauszufiltern.
Beachten Sie, dass die Abfragezeichenfolgen wirklich nur {key: value} -Paare in einem etwas anderen Format sind :? Key1 = value1 & key2 = value2 & key3 = value3.
quelle