Estoy frente a un problema en conseguir el valor de tagid
de mi URL: localhost:8888/p?tagid=1234
.
Ayúdame a corregir mi código de controlador. No puedo obtener el tagid
valor.
Mi código es el siguiente:
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
usuario2834795
fuente
fuente
/p?tagid=1234
tagid se llama una cadena de consulta , no un parámetro de URL. Un parámetro de URL sería/p/:tagId
.Respuestas:
Express 4.x
Para obtener el valor de un parámetro de URL, use req.params
Si desea obtener un parámetro de consulta
?tagId=5
, use req.queryExpress 3.x
Parámetro de URL
Parámetro de consulta
fuente
express-3.4.4
y funciona bien./p/5
si está usando la solución superior, o/p?tagId=5
si está usando la solución inferior.req.param()
está en desuso :Use either req.params, req.body or req.query, as applicable.
para el uso de "parámetros" de ruta con nombre (por ejemplo/p/:tagId
)req.params
. Para cadenas de consulta (p . Ej./p?tagId=5
) Usereq.query
.Puedes hacer algo como
req.param('tagId')
fuente
req.query
yreq.params
es cosas tan diferentes, el reemplazo de noreq.param('x')
esreq.params.x
req.query.Si desea obtener el valor del parámetro de consulta en la URL, siga las siguientes piezas de código
Si desea obtener el parámetro URL utilizando la función Express param
Exprese la función param para obtener un parámetro específico. Esto se considera middleware y se ejecutará antes de que se llame a la ruta.
Esto se puede usar para validaciones o para obtener información importante sobre el artículo.
Un ejemplo de esto sería:
fuente
Esto funcionará si su ruta se ve así:
localhost:8888/p?tagid=1234
De lo contrario, use el siguiente código si su ruta se ve así:
localhost:8888/p/1234
fuente
/p/:tagid=1234