Настроил роут:
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 →</a>
Все работает все прекрасно, но как мне теперь вывести за место URL который делает выборку по ID /606f4f50ac91981f9ce9bd38/606f5f18122c0c1344014f5e , урл следующего вида /catName/postName
PS. В модели(Model) поста привязанная категория сохраняется как ID, его я вытащить могу, но как по этому ID найти Name категории, и передать в URL.
Уже 2 дня не могу решение найти...........