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