@filisonov

Как правильно настроить маршрут в приложении NodeJS+express+mongoose?

Настроил роут:
router.route('/:category/:id')
    .get(defaultController.singlePost);


Настроил контроллер:
singlePost:async (req, res) => {
        const id = req.params.id;
        const categories = await Category.find().lean();
        const categoryTitleId = Category.findOne({category:req.params.category});
        console.log(req.params.category);
        console.log(categoryTitleId);
        /***/
        Post.findById(id).lean()
            .then(post => {
                res.status(200);
                res.setHeader('Content-Type', 'text/html; charset=utf-8');
                res.render('default/singlePost', {post: post, categories: categories});
            })
            .catch(function(err) {
                //res.status(404).json({message: 'No post found'});
                res.status(404);
                res.setHeader('Content-Type', 'text/html; charset=utf-8');
                res.render('404.handlebars', { url: req.url });
                return;
                //return res.json(err);
            });
        /***/

   }


Сам URL в html документе формируется с помощью handlebars:
<a href="/{{category}}/{{_id}}" class="btn btn-primary">Read More &rarr;</a>


Все работает все прекрасно, но как мне теперь вывести за место URL который делает выборку по ID /606f4f50ac91981f9ce9bd38/606f5f18122c0c1344014f5e , урл следующего вида /catName/postName

PS. В модели(Model) поста привязанная категория сохраняется как ID, его я вытащить могу, но как по этому ID найти Name категории, и передать в URL.
Уже 2 дня не могу решение найти...........
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы