113 votes

req.query et req.param dans ExpressJS

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

  • Comment les deux sont différents l'un de l'autre
  • Quand utiliser puis dans quels cas

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

[EDIT]

Supposons qu'Android envoie une requête POST -> L'intention est d'envoyer (Key,Value) au client et le serveur doit effectuer une requête de base de données basée sur la valeur dans le serveur et retourner une réponse JSON.

Regardez : : cette question pour le programme que j'ai référencé : : Programme Express simple pour l'interrogation d'un résultat

148voto

Zero21xxx Points 2757

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 /utilisateur/:id et vous faites une demande à /utilisateur/5 - req.params donnerait {id: "5"}

req.param est une fonction qui extrait les paramètres de la requête. Tout ceci peut être trouvé aquí .

UPDATE

Si le verbe est un POST et vous utilisez bodyParser alors vous devriez être capable d'obtenir le corps du formulaire dans votre fonction avec req.body . Il s'agira de la version JS analysée du fichier POST forme.

22voto

OneOfOne Points 15558

req.query est la chaîne de requête envoyée au serveur, exemple /page? test=1 , req.param est le paramètre passé au gestionnaire.

app.get('/user/:id', handler); en allant à /user/blah , req.param.id rendrait blah ;

16voto

gabhi Points 786

Je suggère d'utiliser les éléments suivants

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 des raisons de clarté - à moins que vous n'acceptiez vraiment des entrées de chaque objet.

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

11voto

Shivam Chhetri Points 258

Passage de paramètres

GET request to "/cars/honda" 

renvoie une liste de modèles de voitures Honda

Requête de passage

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

renvoie une liste de modèles de voitures Honda, mais filtrée pour que seuls les modèles dont la couleur de stock est le bleu soient renvoyés.

Cela n'a pas de sens d'ajouter ces filtres dans les paramètres de l'URL (/car/honda/color/blue) car, selon REST, cela impliquerait que nous voulons obtenir un tas d'informations sur la couleur "bleu". Puisque ce que nous voulons vraiment, c'est une liste filtrée de modèles Honda, nous utilisons des chaînes de requête pour filtrer les résultats qui sont renvoyés.

Remarquez que les chaînes de requête ne sont en fait que des paires {key : value } dans un format légèrement différent : ?key1=value1&key2=value2&key3=value3.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X