在博客文章中使用标题作为 URL 参数



我正在使用猫鼬和快递开发一个类似 CRUD 博客的小型网页

现在,每个帖子的路由都使用URL上的ID,如下所示:

singlePost.get = () => {
Blog.findById(req.params.id, (err, blogs) => {
if (err) {
throw err
} else {
res.render('single_post', {
blogs: blogs
})
}
})
}

只需链接博客+Id,仅此而已。 www.mypage.com/blog/id 按预期工作。

但是我想使用帖子的标题而不是 Id。所以我在存储在数据库中的文档上添加一个"title2"参数。Title2 只是我稍微修改一下以从"帖子标题"更改为"title_of_the_post"后的标题。

它奏效了,我可以在视图上使用 title2 参数来查看我的所有帖子。

要使用 title2 作为 url 参数,我尝试了这个:

singlePost.get = (req, res) => {
Blog.find({title2: req.params.title2}, (err, blogs) => {
if (err) {
throw err
} else {
console.log(blogs);
res.render('single_post', {
blogs:blogs
})
}
})
}

控制台.log实际上返回对象:

[ { _id: idNumber,
title2: 'esto_debiera_ser_el_titulo_2',
body: '<p>jojoji sjsjjdh</p>',
title: 'esto debiera ser el titulo 2',
__v: 0,
createdAt: 2017-07-22T15:56:03.575Z } ]

但是现在在视图上,我无法访问与以前相同的值。我正在使用车把,所以只是{{blogs.title}}等等。

如果返回我需要的元素,为什么我不能像以前一样在视图上使用它?

任何帮助将不胜感激!

findById返回单个对象,find返回数组。使用findOne获得所需的结果。

最新更新