我正在使用Mongoose和express表达一个类似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"我存储在DB上的文档上的参数。标题2只是标题后我修改了一点来改变"帖子的标题"到" title_of_the_post"。
它有效,我可以在视图上使用title2参数来表示我的所有帖子。
要将title2用作url param,我尝试了这个:
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
})
}
})
}
console.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}}等等。
如果我需要的元素被退回,为什么我不能像以前一样在视图上使用它?
任何帮助将不胜感激!
答案 0 :(得分:1)
findById
返回单个对象,find
返回一个数组。使用findOne
获得所需的结果。