【发布时间】:2020-08-17 00:03:21
【问题描述】:
我有这段代码,可以让我获取用户在我的数据库中发布的所有帖子。问题是我试图将该数据发送到前端(客户端)。但我没有成功,我不知道我错过了什么,
从 mongoDB 中提取用户信息的代码如下。代码运行良好,没有问题,
User.find({}).lean(true).exec((err, users) => {
let userMap = [];
userMap.push({ user: users[i], posts: users[i].posts[j] });
//all the data are stored to userMAP :[{user : xxxxx ,posts : {the posts are here}}]
}
}
}
console.log(userMap);
User.findOne({ userName: req.user.userName }, (error, req_user) => {
console.log(req.user.lastLogin)
let lastSeen = ta.ago(req.user.lastLogin);
//console.log(posts)
res.render('home', { // this part for rendering the homePage and send data
user: req_user,
people: users,
userMap: userMap.reverse()
});
});
我在客户端代码中尝试的是这样的:
<div class="container">
<% for(var x=0;x<user.posts.length;x++) { %>
<div class="jumbotron">
<div>by
<b>{{ user.posts[x].author }}</b>
on
<small>{{ user.posts[x].createdAt }}</small>
</div>
<div>
<p>{{ user.posts[x].caption }}</p>
</div>
<div class="row">
<button onclick="actOnPost(event);"
data-post-id="{{ this.id }}">Like
</button>
<span id="likes-count-{{ this.id }}">{{ this.likes_count }}</span>
</div>
</div>
<% } %>
对于错误部分我什么都没有得到,
这是我在数据库中存储数据的图像
这是首页的图片
我的代码场景:
1- 我正在使用 EJS 视图引擎,当用户登录 home.ejs 并在服务器端显示时,我使用上面的代码准备我需要显示的数据
2- 除了在客户端显示数据home.ejs
3- 为了从我的服务器调用该页面,我将此语句与上述代码混合使用
router.get('/home', (req, res) => {
if (req.user.id) {
console.log(req.user.id)
User.find({}).lean(true).exec((err, users) => {
let userMap = [];
在客户端显示数据的任何帮助或更好的解决方案,
最好的问候,
【问题讨论】:
-
您能否提供一个小型 repo 以便我们可以重现该问题?
-
我可以为您提供我的
home.ejs的文件,您可以吗?还是您需要整个项目? -
如果你可以准备一个小项目,也许只有与你的问题相关的文件,我可以看看它。如果没有更好的图片,我很难告诉你哪里出了问题
-
@orlaqp 我只是接受下面的解决方案,谢谢您的时间,祝您有美好的一天
标签: javascript node.js mongodb ejs