应用程序错误:帖子ID为类别名称"/>
Express.js应用程序错误:帖子ID为类别名称
我正在使用blogging application,Express和MongoDB开发EJS(单击链接以查看GitHub回购)。>
我有帖子
,它们被归类为类别,每个都在其自己的集合中。我按类别筛选帖子:Sport
类别中的所有帖子都显示在http://localhost:3000/sport
,Travel类别中的所有帖子都显示在http://localhost:3000/travel
。为此,我引入了路线router.get('/:catname', postsController.getPostsByCategory);
:
。const express = require('express'); const postsController = require('../../controllers/front-end/posts'); // Express router const router = express.Router(); // Get Posts router.get('/', postsController.getPosts); // Get Posts by Category router.get('/:catname', postsController.getPostsByCategory); // Get Single Post router.get('/:id', postsController.getSinglePost); module.exports = router;
类别确实按类别进行过滤,但是router.get('/:catname',postsController.getPostsByCategory);和
router.get('/:id', postsController.getSinglePost);
发生冲突,以致不再显示单个帖子
这是因为帖子ID用于类别路由。
在控制器中,我有两种方法getPostsByCategory
和getSinglePost
:
exports.getPostsByCategory = async (req, res, next) => { function titleize(slug) { var words = slug.split("-"); return words.map(function(word) { return word.charAt(0).toUpperCase() + word.substring(1).toLowerCase(); }).join(' '); } const postCategory = new RegExp(titleize(req.params.catname),"ig"); const singleCategory = await Category.findOne({cat_name:postCategory}) const posts = await Post.find({ category : singleCategory }, (err, posts) => { if (err) { console.log('Error: ', err); } else { res.render('default/index', { moment: moment, layout: 'default/layout', website_name: 'MEAN Blog', page_heading: 'XPress News', page_subheading: 'A MEAN Stack Blogging Application', posts: posts.reverse(), }); } }).populate('category'); }; exports.getSinglePost = (req, res, next) => { let id = req.params.id; if (id.match(/^[0-9a-fA-F]{24}$/)) { Post.findById(id, function(err, post) { if (err) { console.log('Error: ', err); } else { res.render('default/singlepost', { layout: 'default/layout', website_name: 'MEAN Blog', post: post }); } }); } };
我想以在类别中显示帖子的URL保持模式
http://localhost:3000/category-name
的方式解决此问题。
我该如何实现?
我正在使用Express,EJS和MongoDB开发博客应用程序(单击链接以查看GitHub存储库)。我有按类别分组的帖子,每个帖子都有自己的收藏集。我筛选...
回答如下:这些实际上都是同一条路线:
更多推荐
Express.js应用程序错误:帖子ID为类别名称
发布评论