Comment obtenir un paramètre d’URL dans Express?

Je suis confronté à un problème pour obtenir la valeur de tagid partir de mon URL: localhost:8888/p?tagid=1234 .

Aidez-moi à corriger mon code de contrôleur. Je ne peux pas obtenir la valeur tagid .

Mon code est le suivant:

app.js :

 var express = require('express'), http = require('http'), path = require('path'); var app = express(); var controller = require('./controller')({ app: app }); // all environments app.configure(function() { app.set('port', process.env.PORT || 8888); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); app.set('view engine', 'jade'); app.set('views', __dirname + '/views'); app.use(app.router); app.get('/', function(req, res) { res.render('index'); }); }); http.createServer(app).listen(app.get('port'), function() { console.log('Express server listening on port ' + app.get('port')); }); 

Controller/index.js :

 function controller(params) { var app = params.app; //var query_ssortingng = request.query.query_ssortingng; app.get('/p?tagId=/', function(request, response) { // userId is a parameter in the url request response.writeHead(200); // return 200 HTTP OK status response.end('You are looking for tagId' + request.route.query.tagId); }); } module.exports = controller; 

routes/index.js :

 require('./controllers'); /* * GET home page. */ exports.index = function(req, res) { res.render('index', { title: 'Express' }); }; 

Express 4.x

Pour obtenir la valeur d’un paramètre d’URL, utilisez req.params

 app.get('/p/:tagId', function(req, res) { res.send("tagId is set to " + req.params.tagId); }); // GET /p/5 // tagId is set to 5 

Si vous voulez obtenir un paramètre de requête ?tagId=5 , utilisez req.query

 app.get('/p', function(req, res) { res.send("tagId is set to " + req.query.tagId); }); // GET /p?tagId=5 // tagId is set to 5 

Express 3.x

Paramètre URL

 app.get('/p/:tagId', function(req, res) { res.send("tagId is set to " + req.param("tagId")); }); // GET /p/5 // tagId is set to 5 

Paramètre de requête

 app.get('/p', function(req, res) { res.send("tagId is set to " + req.query("tagId")); }); // GET /p?tagId=5 // tagId is set to 5 

Vous pouvez faire quelque chose comme req.param('tagId')

Si vous souhaitez saisir la valeur du paramètre de requête dans l’URL, suivez les éléments de code ci-dessous.

 //url.localhost:8888/p?tagid=1234 req.query.tagid OR req.param.tagid 

Si vous voulez récupérer le paramètre URL en utilisant la fonction Express param

Exprimez la fonction param pour saisir un paramètre spécifique. Ceci est considéré comme un middleware et s’exécutera avant l’appel de l’itinéraire.

Cela peut être utilisé pour des validations ou pour saisir des informations importantes sur un élément.

Un exemple pour cela serait:

 // parameter middleware that will run before the next routes app.param('tagid', function(req, res, next, tagid) { // check if the tagid exists // do some validations // add something to the tagid var modified = tagid+ '123'; // save name to the request req.tagid= modified; next(); }); // http://localhost:8080/api/tags/98 app.get('/api/tags/:tagid', function(req, res) { // the tagid was found and is available in req.tagid res.send('New tag id ' + req.tagid+ '!'); }); 

cela fonctionnera si votre itinéraire est comme: localhost: 8888 / p? tagid = 1234

 var tagId = req.query.tagid; console.log(tagId);// 1234 console.log(req.query.tagid);// 1234 OR 

cela fonctionnera si votre itinéraire est comme: localhost: 8888 / p /: tagid = 1234

 var tagId = req.params.tagid; console.log(tagId); //1234 console.log(req.params.tagid); //1234