使用socket.io

时间:2015-05-12 21:18:04

标签: node.js mongodb sockets express

我正在使用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语句中的第二个查询有效,因为我获得了包含必要信息的主题详细信息页面,但注释的控制台日志返回空白

所以我不确定我的代码出错了。

1 个答案:

答案 0 :(得分:0)

你可以使用find而不是first?

Comment.find({commentTopicId: topic._id}).exec(function(err,  comments) {
  res.send(200, comments);
}