web-dev-qa-db-fra.com

req.query et req.param dans ExpressJS

Principales différences entre req.query et req.param dans Express

  • En quoi les deux sont-ils différents l'un de l'autre
  • Quand utiliser alors dans quels cas

Supposons qu'un client envoie une paire = Android (clé, valeur) paire dans la requête ... laquelle utiliser?

[EDIT]

Supposons que Android envoie une demande POST -> - L'intention est d'envoyer la clé, valeur) au client et le serveur doit exécuter une requête de base de données basée sur la valeur dans le serveur et retourne la réponse JSON

Regardez :: cette question pour le programme référencé: : programme Simple Express permettant d’interroger un résultat

62
user2582071

req.query retournera un objet JS après l'analyse de la chaîne de requête.

/user? name = tom & age = 55 - req.query donnerait {name:"tom", age: "55"}

req.params retournera les paramètres dans la route correspondante. Si votre route est /user /: id et que vous faites une demande à /user/5 - req.params donnerait {id: "5"}

req.param est une fonction qui arrache les paramètres de la requête. Tout cela peut être trouvé ici .

[~ # ~] met à jour [~ # ~]

Si le verbe est un POST et que vous utilisez bodyParser, vous devriez pouvoir obtenir le corps du formulaire dans votre fonction avec req.body. Ce sera la version JS analysée de la forme POSTed.

77
arb

Je suggère d'utiliser la suite

req.param('<param_name>')

req.param ("") fonctionne comme suit

La recherche est effectuée dans l'ordre suivant:

req.params
req.body
req.query

L'accès direct à req.body, req.params et req.query doit être privilégié pour plus de clarté - à moins que vous n'acceptiez vraiment les entrées de chaque objet.

Réf.: http://expressjs.com/4x/api.html#req.param

11
Abhijit Gaikwad

req.query Est la chaîne de requête envoyée au serveur, par exemple /page?test = 1, req.param Correspond aux paramètres transmis au gestionnaire.

app.get('/user/:id', handler);, aller à /user/blah, req.param.id renverrait blah;

10
OneOfOne

Paramètres de passage

GET request to "/cars/honda" 

retourne une liste de modèles de voitures Honda

Requête de passage

GET request to "/car/honda?color=blue"

renvoie une liste des modèles de voiture Honda, filtrés, de sorte que seuls les modèles avec une couleur de stock bleue sont retournés.

Cela n'a aucun sens d'ajouter ces filtres dans les paramètres d'URL (/ car/honda/couleur/bleu) car, selon REST, cela voudrait dire que nous souhaitons obtenir un tas d'informations sur la couleur "bleu". Comme nous souhaitons réellement une liste filtrée de modèles Honda, nous utilisons des chaînes de requête pour filtrer les résultats renvoyés.

Notez que les chaînes de requête ne sont en réalité que des paires {clé: valeur} dans un format légèrement différent:? Key1 = valeur1 & clé2 = valeur2 & clé3 = valeur3.

5
Shivam Chhetri