2016-07-26 4 views
1

Я использую среду MEAN JS для создания приложения. Моя цель - определить параметр запроса во время загрузки веб-сайта, а затем установить определенные параметры для приложения.Экспресс не обнаруживает параметры запроса

Мои server.js:

exports = module.exports = app; 

контроллер сервера

exports.index = function(req, res) { 

console.log('URL is ' + req.url); 
console.log('Path is ' + req.path); 
var param1 = req.query.param1; 
console.log('Parameter : ' + param1); 
console.dir(req.query); 

res.render('index', { 
    request: req, 
    myparam : param1 //Setting my custom parameter 
}); 
}; 

URL доступ:

http://localhost:3000/#!/?param1=test 

Выход:

URL is/
Path is/
Parameter : undefined 
{} 

Параметр запроса вообще не обнаружен. Может кто-нибудь объяснить, почему это может произойти. Я знаю, что Express игнорирует параметры во время маршрутизации, но также ли он лишает URL-адрес?

РЕДАКТИРОВАТЬ:

Это был угловой фрагмент URL, который вызывает ошибку. Как только я сделал URL нормальным, Express обнаружил все параметры запроса, используя вышеуказанный метод.

EDIT 2:

Подробный ответ здесь

MEANJS Get URL Parameters

+0

вы могли бы использовать объемноцентрированных парсер и получить параметр, используя: req.body.param1 –

+0

Спасибо, попробует. Хотя параметры строки запроса должны быть сохранены в req.query правильно? Как это вообще не обнаруживается? – KVNam

+0

Попробуйте req.QueryString ("param1") –

ответ

0

Поскольку у меня нет доступа к полному коду, я не 100% уверен, что это правильное решение для вас.

Хотя он отлично работает для меня:

Определить:

var query = require('url').parse(req.url,true).query; 

И потом:

var param1 = query.param1 

Позвольте мне знать, если это помогает :)

+1

Ошибка была вызвана #! добавлен в URL-адрес по Angular и структуре MEANJS. Экспресс не обнаружил никаких параметров строки запроса за пределами # !. Я переключился на чистые URL-адреса и решил проблему. Спасибо за предложение хотя :). – KVNam

+0

Ваш прием. Я рад, что ты заработал. – felipenbrito