tutorial principiantes para node libro handlebars examples desde cero attribute javascript node.js express url-parameters query-parameters

javascript - principiantes - node js examples



¿Cómo obtener un parámetro de URL en Express? (4)

Puedes hacer algo como req.param(''tagId'')

Estoy enfrentando un problema para obtener 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 valor de tagid .

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'' }); };


esto funcionará si su ruta es como: localhost: 8888 / p? tagid = 1234

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

esto funcionará si su ruta es como: localhost: 8888 / p /: tagid = 1234

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


Expreso 4.x

Para obtener el valor de un parámetro de URL, use 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 desea obtener un parámetro de consulta ?tagId=5 , use 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

Expreso 3.x

Parámetro de 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

Parámetro de consulta

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


Si desea capturar el valor del parámetro de consulta en la URL, siga los siguientes códigos

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

Si desea capturar el parámetro de URL utilizando la función Express param

Expresar la función param para agarrar un parámetro específico. Esto se considera middleware y se ejecutará antes de llamar a la ruta.

Esto se puede usar para validaciones o para obtener información importante sobre el artículo.

Un ejemplo para esto sería:

// 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+ ''!''); });