猫鼬 - 数据没有保存到db

问题描述:

我不能让Mongoose保存我的数据。每次发生新事件时,我都想保存到数据库中。猫鼬 - 数据没有保存到db

//Capture data from socket into schema 
io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('slog', function (data) { 
     story.lines.push ({ author: 'Khuram', text: data.my}, function(){ 
      story.save(function(err){ 
       //save line 
       if (err) {throw err; } 
       console.log('saved story line'); 
      }); 
     }); 
    }); 
}); 
+0

什么是“苦干”事件 - 这是要引起猫鼬做的更新吗?你能证实它实际上是被解雇吗?这将有助于澄清是否是您对猫鼬的呼叫或事件处理代码的问题。 – mpobrien 2012-01-16 21:13:49

+0

是的,这是我想要猫鼬更新的事件。我已经独立测试了我的socket.io代码,并可以确认它触发。作为push和no socket.io的一部分,使用staric数据进行猫鼬更新也适用。我只是觉得我没有正确地合并这两个函数呢? – 2012-01-16 23:08:35

根据此页:http://mongoosejs.com/docs/embedded-documents.html

也许你可以试试:

story.lines.push ({ author: 'Khuram', text: data.my}); 
story.save(function(err){ 
      //save line 
      if (err) {throw err; } 
      console.log('saved story line'); 
}); 

最终,好像推法可能不支持像你试图匿名函数回调通过。

参考:https://github.com/LearnBoost/mongoose/blob/master/lib/types/array.js

+0

这就是我原来的样子,但是这样做,它不会等待接收套接字数据并继续保存。每次数据传输时我都想保存数据。 任何想法? – 2012-01-23 20:49:00

+0

刚刚一直玩这个多一点。似乎是更多与Socket.io而不是猫鼬有关的问题,但目前还不确定。我只是尝试使用一些静态值推动socket.on,但它没有奏效。 – 2012-01-23 21:24:48