我试图让我的路线从URL中删除博客应用程序的标题。我使用id
工作,但无法弄清楚标题。我知道我不能做findById()
,而是使用find()
。我该如何定制查询以找到标题。
路由
app.get("/blogs/:title", function(req, res) {
Blog.find(req.params.title, function(err, foundBlog){
if(err){
res.redirect("/blogs");
} else {
res.render("show", {blog: foundBlog});
}
});
});
架构
var blogSchema = new mongoose.Schema({
title: String,
image: String,
body: String,
created: {type: Date, default: Date.now},
author: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
email: String
}
});
您需要将带有架构键的对象传递到find()
方法:
app.get("/blogs/:title", function(req, res) {
Blog.find({ title: req.params.title }, function(err, foundBlog){
if(err){
res.redirect("/blogs");
} else {
res.render("show", {blog: foundBlog});
}
});
});