Je suis confronté à un problème sur l' obtention de la valeur tagid
de mon URL: localhost:8888/p?tagid=1234
.
Aidez-moi à corriger mon code de contrôleur. Je ne parviens pas à obtenir la tagid
valeur.
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_string = request.query.query_string;
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'
});
};
javascript
node.js
express
url-parameters
query-parameters
user2834795
la source
la source
/p?tagid=1234
tagid est appelé une chaîne de requête , pas un paramètre d'URL. Un paramètre d'URL serait/p/:tagId
.Réponses:
Express 4.x
Pour obtenir la valeur d'un paramètre d'URL, utilisez req.params
Si vous souhaitez obtenir un paramètre de requête
?tagId=5
, utilisez req.queryExpress 3.x
Paramètre URL
Paramètre de requête
la source
express-3.4.4
et ça fonctionne bien./p/5
si vous utilisez la solution supérieure ou/p?tagId=5
si vous utilisez la solution inférieure.req.param()
est obsolète :Use either req.params, req.body or req.query, as applicable.
pour les "paramètres" de route nommés (par exemple/p/:tagId
), utilisezreq.params
. Pour les chaînes de requête (par exemple/p?tagId=5
), utilisezreq.query
.Vous pouvez faire quelque chose comme
req.param('tagId')
la source
req.query
etreq.params
c'est tellement différent, le remplacement dereq.param('x')
n'estreq.params.x
pas req.query.Si vous souhaitez récupérer la valeur du paramètre de requête dans l'URL, suivez les éléments de code ci-dessous
Si vous souhaitez récupérer le paramètre URL à l'aide de la fonction Express param
Fonction param express 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 l'article.
Un exemple serait:
la source
Cela fonctionnera si votre itinéraire ressemble à ceci:
localhost:8888/p?tagid=1234
Sinon, utilisez le code suivant si votre itinéraire ressemble à ceci:
localhost:8888/p/1234
la source
/p/:tagid=1234