Je suis nouveau sur Node.js et Express et maintenant j'observe que lorsque je change la méthode sur mon application appelante, les paramètres sont dans req.param([name])
, req.body.[name]
ou req.query
et cela dépend de la méthode. Maintenant, mes questions sont deux:
EDIT: Après la réponse de @ jfriend00, j'expliquerais mieux mon dilemme: je développe une API et je créerais un module qui pourrait vérifier les données transmises avec les différentes méthodes, pour l'instant j'écris quelque chose comme:
if(req.method== 'PUT' || req.method=='POST')
x=req.body.x;
else
x=req.query.x;
et je ferais quelque chose au début comme:
if(req.query!=null)
req.body=req.query;
donc, après, dans tous mes chèques, je contrôlerai le corps et non les autres! Pensez-vous que c'est une mauvaise pratique?
Les trois propriétés proviennent de différentes sources:
req.query
provient de paramètres de requête dans l'URL tels que http://foo.com/somePath?name=ted où req.query.name === "ted"
.
req.params
provient de segments de chemin de l'URL qui correspondent à un paramètre de la définition de l'itinéraire, tel /song/:songid
. Ainsi, avec un itinéraire utilisant cette désignation et une URL telle que /song/48586
, puis req.params.songid === "48586"
.
req.body
les propriétés proviennent d'un post de formulaire où les données du formulaire (qui sont soumises dans le contenu du corps) ont été analysées dans les propriétés de la balise body.
Vous utilisez la propriété appropriée qui correspond à la source des données qui vous intéressent.
Pourquoi existe-t-il des req.params, req.query et req.body?
Pour vous donner un accès simplifié à trois types de données différents.