Question Comment obtenir les variables GET (chaîne de requête) dans Express.js sur Node.js?


Pouvons-nous obtenir les variables dans la chaîne de requête dans Node.js juste comme nous les obtenons dans $_GET en PHP?

Je sais que dans Node.js nous pouvons obtenir l'URL dans la demande. Y a-t-il une méthode pour obtenir les paramètres de la chaîne de requête?


845
2017-08-02 13:08


origine


Réponses:


Oui, vous pouvez accéder req.url et le builtin url module à url.parse il manuellement:

var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;

Cependant, dans expressjs c'est déjà fait pour vous et vous pouvez simplement utiliser req.query pour ça:

var id = req.query.id; // $_GET["id"]

754
2017-08-02 13:30



Depuis que vous avez mentionné Express.js dans vos tags, voici une réponse spécifique à Express: utilisez req.query. Par exemple.

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('id: ' + req.query.id);
});

app.listen(3000);

1456
2017-08-02 14:00



Dans Express, utilisez req.query.

req.params obtient uniquement les paramètres de route, pas les paramètres de chaîne de requête. Voir le Express ou des voiles Documentation:

(req.params) Vérifie les paramètres de route, ex: / user /: id

(req.query) Vérifie les paramètres de la chaîne de requête, ex:? id = 12 Vérifie les paramètres du corps urlencodés

(exqbody), ex: id = 12 Pour utiliser les corps de requête urlencoded, req.body devrait être un objet. Cela peut être fait en utilisant le middleware _express.bodyParser.

Cela dit, la plupart du temps, vous voulez obtenir la valeur d'un paramètre quelle que soit sa source. Dans ce cas, utilisez req.param('foo').

La valeur du paramètre sera renvoyée, que la variable se trouve dans les paramètres de route, la chaîne de requête ou le corps de la requête codée.

Side note - si vous cherchez à obtenir l'intersection des trois types de paramètres de requête (similaire à PHP $_REQUEST), vous avez juste besoin de fusionner les paramètres ensemble - voici comment je le configurer en Voiles. Gardez à l'esprit que l'objet paramètres de chemin / itinéraire (req.params) a des propriétés de tableau, donc l'ordre compte (bien que cette peut changer dans Express 4)


407
2018-02-11 18:49



Pour Express.js vous voulez faire req.params:

app.get('/user/:id', function(req, res) {
  res.send('user' + req.params.id);    
});

110
2017-08-02 15:38



J'ai appris des autres réponses et j'ai décidé d'utiliser ce code sur tout mon site:

var query = require('url').parse(req.url,true).query;

Ensuite, vous pouvez simplement appeler

var id = query.id;
var option = query.option;

où l'URL pour obtenir devrait être

/path/filename?id=123&option=456

66
2017-11-26 16:26



Vous devriez être capable de faire quelque chose comme ça:

var http = require('http');
var url  = require('url');

http.createServer(function(req,res){
    var url_parts = url.parse(req.url, true);
    var query = url_parts.query;

    console.log(query); //{Object}

    res.end("End")
})

32
2017-08-02 13:44



//get query&params in express

//etc. example.com/user/000000?sex=female

app.get('/user/:id', function(req, res) {

  const query = req.query;// query = {sex:"female"}

  const params = req.params; //params = {id:"000000"}

})

29
2018-02-15 02:35



Il y a 2 façons de transmettre des paramètres via la méthode GET

Méthode 1: L'approche MVC où vous transmettez les paramètres comme / nomdufichier /: paramname
Dans ce cas, vous pouvez utiliser req.params.paramname pour obtenir la valeur du paramètre. Pour l'exemple, reportez-vous au code ci-dessous où j'attend l'ID en tant que param
lien pourrait être comme: http://myhost.com/items/23

var express = require('express');
var app = express();
app.get("items/:id",function(req,res){
var id = req.params.id;
//further operations to perform
});
app.listen(3000);

Méthode 2: Approche générale: Passer des variables comme chaîne de requête en utilisant '?' opérateur
Pour l'exemple, reportez-vous au code ci-dessous où j'attends l'ID en tant que paramètre de requête
lien pourrait être comme: http://myhost.com/items?id=23

var express = require('express');
var app = express();
app.get("/items",function(req,res){
    var id = req.query.id;
    //further operations to perform
});
app.listen(3000);

26
2018-05-26 07:57