Я столкнулся вопрос о получении значения tagid
из моего URL: localhost:8888/p?tagid=1234
.
Помогите мне исправить код моего контроллера. Я не могу получить tagid
значение.
Мой код выглядит следующим образом:
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
источник
источник
/p?tagid=1234
tagid называется строкой запроса , а не параметром URL. Параметр URL будет/p/:tagId
.Ответы:
Экспресс 4.х
Чтобы получить значение параметра URL, используйте req.params
Если вы хотите получить параметр запроса
?tagId=5
, используйте req.queryЭкспресс 3.x
Параметр URL
Параметр запроса
источник
express-3.4.4
и он отлично работает./p/5
если вы используете верхнее решение, или/p?tagId=5
если вы используете нижнее решение.req.param()
является устаревшим :Use either req.params, req.body or req.query, as applicable.
Для именованных маршрута «Параметры» (например/p/:tagId
) использованиеreq.params
. Для строк запроса (например/p?tagId=5
) используйтеreq.query
.Вы можете сделать что-то вроде
req.param('tagId')
источник
req.query
иreq.params
настолько разные вещи, заменаreq.param('x')
являетсяreq.params.x
не req.query.Если вы хотите получить значение параметра запроса в URL, следуйте приведенным ниже частям кода.
Если вы хотите получить параметр URL с помощью функции Express param
Выразите функцию param, чтобы получить определенный параметр. Это считается промежуточным программным обеспечением и будет запущено до вызова маршрута.
Это может быть использовано для проверки или получения важной информации об элементе.
Примером этого может быть:
источник
Это будет работать, если ваш маршрут выглядит так:
localhost:8888/p?tagid=1234
В противном случае используйте следующий код, если ваш маршрут выглядит следующим образом:
localhost:8888/p/1234
источник
/p/:tagid=1234