我正在使用node,express,mongo和socket.io开发一个项目。我成功地建立了套接字连接并将消息保存到数据库。我现在想要实现的是,当有人加入讨论时,他会看到所有以前的消息。这就是我遇到障碍的地方。
路由文件的代码如下:
router.get('/:id', function(req, res, next) {
var topicId = req.params.id;
console.log('Logging topic id: ' + topicId);
// find one single topic based on id
Topic.findById(topicId, function(err, topic)
{
if(err)
{
console.log('There was no topic with this ID');
return next(err)
}
else
{
console.log('Whoop whoop we found a topic matching the requested ID');
Comment.find().where("commentTopicId", topicId).exec(function(err, comments)
{
res.render('topicdetail', { topic: topic , comments: comments } );
console.log("Logging data topic: " + topic);
console.log("Loggin data title out db: " + topic.topicTitle);
console.log("Logging data comment: " + comments);
console.log("Logging error: " + err);
});
}
});
});
else语句中的第二个查询有效,因为我获得了包含必要信息的主题详细信息页面,但注释的控制台日志返回空白
所以我不确定我的代码出错了。
答案 0 :(得分:0)
你可以使用find而不是first?
Comment.find({commentTopicId: topic._id}).exec(function(err, comments) {
res.send(200, comments);
}