Каким образом можно получить имя параметра в маршруте Express?
Имею к примеру маршрут
'/user/:userId'
При переходе получаю динамический адрес
/user/5af2fe6cc7a7631ae040db43
Хочу сделать промежуточный обработчик который будет выбирать информацию о маршруте из БД,
Найти в БД динамический адрес не получится без преобразования
5af2fe6cc7a7631ae040db43
в
/:
и поиск соответствия
/user/:
Такой скрипт я сделал, но мне интересно есть ли способ полегче, тем более, что скрипт работает только с 1 параметром, то есть к примеру
/user/:username/:userId
он пока не сможет обработать (надо допилить).
Пример кода для наглядности:
// Moongose
var Routes = mongoose.model('Routes', RoutesSchema);
app.use((req, res, next) => {
//Получаем информацию о маршруте из бд
Routes.find({'path' : req.originalUrl}, (err, pageInfo) => {
// Если документ не найден
if(pageInfo == null) {
var search = req.originalUrl.split('/');
search.splice(-1,1,':');
search = search.join('/');
// serach = /user/:
Routes.findOne({'path' : {$regex: search}}, function(err, pageInfo) {
// Устанавливаем локальные переменные ответа
res.locals.title = pageInfo.title;
res.locals.description = pageInfo.description;
next()
})
}
// Если все ок
else {
// Устанавливаем локальные переменные ответа
res.locals.title = pageInfo.title
res.locals.description= pageInfo.description
next()
}
})
})
Заранее благодарен