Ich bin neu in Node.js und Express und beobachte jetzt, dass sich die Parameter beim Ändern der Methode in meiner aufrufenden App in req.param([name])
, req.body.[name]
Oder req.query
und es hängt von der Methode ab. Jetzt sind meine Fragen zwei:
EDIT: Nach der Antwort von @ jfriend00 würde ich mein Dilemma besser erklären: Ich entwickle eine API und würde ein Modul erstellen, das die mit den verschiedenen Methoden übergebenen Daten überprüfen kann. Im Moment schreibe ich etwas wie:
if(req.method== 'PUT' || req.method=='POST')
x=req.body.x;
else
x=req.query.x;
und ich würde am Anfang etwas tun wie:
if(req.query!=null)
req.body=req.query;
also werde ich nach all meinen Überprüfungen die Kontrolle über req.body und nicht über die anderen übernehmen! Denken Sie, dass es eine schlechte Praxis ist?
Alle drei Eigenschaften stammen aus verschiedenen Quellen:
req.query
stammt von Abfrageparametern in der URL wie http://foo.com/somePath?name=ted wobei req.query.name === "ted"
.
req.params
stammt aus Pfadsegmenten der URL, die einem Parameter in der Routendefinition entsprechen, z. B. /song/:songid
. Mit einer Route, die diese Bezeichnung verwendet, und einer URL wie /song/48586
, dann req.params.songid === "48586"
.
req.body
Eigenschaften stammen aus einem Formularbeitrag, in dem die Formulardaten (die im Body-Inhalt übermittelt werden) in Eigenschaften des Body-Tags analysiert wurden.
Sie verwenden die entsprechende Eigenschaft, die der Quelle der Daten entspricht, an denen Sie interessiert sind.
Warum existieren req.params, req.query und req.body?
Vereinfachter Zugriff auf drei verschiedene Datentypen.