2012-01-16 108 views
1

我不能讓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

回答

0

根據此頁: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