我将开始我的MongoDB的数据看起来像:
_id : 5c5b450918cb2b121648ff7a
name : "dannondarko"
email : "[email protected]"
password : "$2a$10$3z5m1e9Pcfid72Q2GchCjeTD55/SsIxmtWr3I1ZiA.DX/KlpfTbdK"
date : 2019-02-06 20:35:21.973
__v : 0
posts : Array
0 : Object
note : "test for the user dannondarko"
date : "02/08/2019"
这仅仅是一个辅助项目,最有可能将永远活,所以不要担心我张贴这数据的安全性!至于我是怎么在我的服务器代码游行的代码:
app.get('/:username', (req, res) => {
username = req.params.username.toLowerCase();
const collection = req.app.locals.collection;
collection.find({ name: username }).toArray(function (err, results) {
if (err) {
res.status(500).send("Error communicating with the DB.");
} else if (results.length > 0) {
console.log("Here are the results: " + results);
console.log({people: results});
res.status(200).render('profile', {posts: results, name: username});
} else {
next();
}
});
});
我所用这个代码做的是说你的头到地址栏“/ dannondarko”,它应该找到集合,它确实很好,然后在“结果”的变量就是我上面贴的完整对象“dannondarko” 。我所试图做的是刚刚获得“信息”的数据,如音符和日期。
该说明和日期是我需要的,显示用户的笔记和后的日期的唯一数据,这将被发送到这个.ejs应该创建一个职位(有点像FB)文件。这里是我的.ejs文件:
<h1 class="mt-4"><%= name %></h1>
<div class="container">
<br>
<% for(var i=0; i < posts.length; i++) { %>
<div class="container">
<label><%= posts[i].note %></label>
<div class="container">
<label><%= posts[i].date %></label>
</div>
</div>
<% } %>
</div>
我希望这是足够的信息。我相信我的堕落时,不知道如何刚刚从某个用户提取的MongoDB的“帖子”阵列和循环访问对象,并发送了说明和日期的.ejs。
该results
是文档的数组和渲染这个数组作为EJS posts
。现在,在您EJS文件posts
代表文件的阵列,而不是posts
阵列。所以,如果你想遍历所有结果,你应该修改你这样的代码:
<% posts.forEach(post => { %>
<h1 class="mt-4"><%= post.name %></h1>
<div class="container">
<br>
<% post.posts.forEach(p => { %>
<div class="container">
<label><%= p.note %></label>
<div class="container">
<label><%= p.date %></label>
</div>
</div>
<% }) %>
</div>
<% }) %>
如果我没有理解好你蒙戈模型结构上面应该可以帮助您。