wake-up-neo.com

Wie erhalte ich einen URL-Parameter in Express?

Ich habe ein Problem damit, den Wert von tagid von meiner URL zu erhalten: localhost:8888/p?tagid=1234.

Hilf mir, meinen Controller-Code zu korrigieren. Ich kann den Wert tagid nicht ermitteln.

Mein Code lautet wie folgt:

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

Express 4.x

Verwenden Sie req.params , um den Wert eines URL-Parameters abzurufen

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

// GET /p/5
// tagId is set to 5

Wenn Sie einen Abfrageparameter ?tagId=5 erhalten möchten, verwenden Sie 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

URL-Parameter

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

// GET /p/5
// tagId is set to 5

Abfrageparameter

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

// GET /p?tagId=5
// tagId is set to 5
613
maček

Sie können etwas tun wie req.param('tagId')

18
tomahim

Wenn Sie den Abfrageparameterwert in der URL abrufen möchten, folgen Sie den folgenden Codeteilen

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

Wenn Sie den URL-Parameter mit der Express-Param-Funktion abrufen möchten

Express-Param-Funktion, um einen bestimmten Parameter zu erfassen. Dies gilt als Middleware und wird ausgeführt, bevor die Route aufgerufen wird.

Dies kann für Überprüfungen oder zum Abrufen wichtiger Informationen zum Objekt verwendet werden.

Ein Beispiel dafür wäre:

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

Dies funktioniert, wenn Ihre Route folgendermaßen aussieht: localhost:8888/p?tagid=1234

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

Verwenden Sie andernfalls den folgenden Code, wenn Ihre Route so aussieht: localhost:8888/p/1234

var tagId = req.params.tagid;
console.log(tagId); // outputs: 1234
console.log(req.params.tagid); // outputs: 1234
3
ajay saini