Ich habe ein Problem beim Abrufen des Werts tagid
von meiner URL : localhost:8888/p?tagid=1234
.
Helfen Sie mir, meinen Controller-Code zu korrigieren. Ich kann den tagid
Wert nicht bekommen .
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'
});
};
javascript
node.js
express
url-parameters
query-parameters
user2834795
quelle
quelle
/p?tagid=1234
wird MarkierungslD einen gerufene Query - String , keine URL - Parameter. Ein URL-Parameter wäre/p/:tagId
.Antworten:
Express 4.x.
Verwenden Sie req.params , um den Wert eines URL-Parameters abzurufen
Wenn Sie einen Abfrageparameter erhalten möchten
?tagId=5
, verwenden Sie req.queryExpress 3.x.
URL-Parameter
Parameter abfragen
quelle
express-3.4.4
und es funktioniert gut./p/5
Sie daran, zu verwenden, wenn Sie die obere Lösung verwenden oder/p?tagId=5
wenn Sie die untere Lösung verwenden.req.param()
ist veraltet :Use either req.params, req.body or req.query, as applicable.
Für benannte Route "Parameter" (zB/p/:tagId
) verwendenreq.params
. Für Abfragezeichenfolgen (zB/p?tagId=5
) verwendenreq.query
.Sie können so etwas tun
req.param('tagId')
quelle
req.query
undreq.params
ist so verschiedene Dinge, der Ersatz fürreq.param('x')
istreq.params.x
nicht req.query.Wenn Sie den Abfrageparameterwert in der URL abrufen möchten, befolgen Sie die folgenden Codeteile
Wenn Sie den URL-Parameter mit der Express-Parameterfunktion abrufen möchten
Drücken Sie die Parameterfunktion aus, um einen bestimmten Parameter abzurufen. Dies wird als Middleware betrachtet und ausgeführt, bevor die Route aufgerufen wird.
Dies kann für Validierungen oder zum Abrufen wichtiger Informationen zu Elementen verwendet werden.
Ein Beispiel hierfür wäre:
quelle
Dies funktioniert, wenn Ihre Route folgendermaßen aussieht:
localhost:8888/p?tagid=1234
Verwenden Sie andernfalls den folgenden Code, wenn Ihre Route so aussieht:
localhost:8888/p/1234
quelle
/p/:tagid=1234