node.js - 我可以用 Node.js Mongoose 填充整个目录吗?
问题描述
所以我可能用词很糟糕,但我现在被困住了。我正在尝试创建一个类似 Instagram 的网站,但遇到了问题。我有一个帖子架构,我存储所有发布的帖子,我使用posts.forEach将它们显示在主页上,我如何将评论架构插入主页获取路由,以便我可以循环浏览所有帖子和对于每一个单独循环浏览所有评论?我在这里真的很新,我真的不知道如何表达这个问题,但我希望你能明白我的意思。非常感谢提前!
app.get("/", function(req,res){
//get all posts from db
posts.find({}, function(err, allPosts){
if(err){
console.log(err);
}
else{
res.render("home", {posts: allPosts});
}
});
});
<% posts.forEach(function(posts){ %>
<div class="ui card" style="margin: 4% 20%;float: none;margin-bottom: 10px;">
<div class="content">
<div class="right floated meta">Time</div>
<img class="ui avatar image" src="https://image.shutterstock.com/image-vector/person-icon-260nw-282598823.jpg"> Elliot
</div>
<div class="image">
<img src="<%= posts.image %>" class="card-img-top" alt="...">
</div>
<div class="content">
<span class="right floated">
<i class="heart outline like icon"></i>
Likes
</span>
<i class="comment icon"></i>
Comments
</div>
<div class="container">
<h5 class="card-title"></h5>
<p class="card-text"><%= posts.description %></p>
</div>
<div class="extra content">
<div class="ui large transparent left icon input">
<i class="heart outline icon"></i>
<input type="text" class="card-input" placeholder="Add Comment...">
</div>
</div>
</div>
<% }) %>
var postSchema = new mongoose.Schema({
image: String,
description: String,
comments: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Comment"
}
]
});
var commentSchema = new mongoose.Schema({
text: String,
author: String
});
解决方案
您应该能够像这样填充:
app.get("/", async function(req,res){
//get all posts from db
const allPosts = await posts.find({}).populate('comments');
res.render("home", {posts: allPosts});
});
使用 try-catch 处理错误(承诺拒绝)。
推荐阅读
- django - django中两个变量的总和
- neo4j - 升级数据库、下载 APOC、连接以及升级日期存储和格式
- c++ - 嵌套的最佳放置顺序
- api - Bittrex API 返回“结果”[object Object]
- python - @property 和 getattr() 有什么区别?
- javascript - .filter 中的 ES6 .filter
- date - 这是什么日期格式,如何在 SPSS 中解析?
- javascript - 使用客户端的 Node js 写入服务器中的 Excel 文件
- ios - Objective C 从完成块中获取数据并在外部类中解析
- python - 链接 2 个数据帧并使用查找返回一个值