2016-04-03 19 views
1

İki şema var, FinishedGame ve PlayingGame. Her iki şema da aynıdır. Bir oyunu kapattığımda PlayingGame'u FinishedGame koleksiyonuna kopyalamak ve PlayingGame'u silmek istiyorum. Kod şu anda bir hata atıyor gibi görünmüyor ancak FinishedGame'a hiçbir şey eklemiyor. Ben kabuk show collections çalıştırmak açtığımda sadece playinggames ve system.indexes görüyorum. Herhangi bir yardım büyük beğeni topluyor.Mongoose, bir bulmanın sonucunu kaydederek hiçbir şey yapmıyor gibi görünüyor

İşte ben bir oyun kapatmak istediğinizde çalıştırılan kod:

Bunu, bir Gelincik düz JS nesnesi değil bekliyor olarak FinishedGame yapıcı geçirmeden önce game üzerinde toObject() çağırmanız gerekir
console.log('finding ', gameId); 
PlayingGame.findById(gameId, function(err, game) { 
    if (err) { 
     console.log(err); 
     throw 'Problem finding game when closing'; 
    } 

    console.log(game); 
    // if game found, move PlayingGame to FinishedGame emit game closed to room 
    if (game) { 
     console.log('Saving game to finished games'); 
     var finishedGame = new FinishedGame(game); 
     finishedGame.save(function(err) { 
      if (err) throw 'Problem saving finished game when moving playing game to finished game'; 
      console.log('Successfuly saved to finish game'); 
      game.remove(function(err) { 
       if (err) throw 'Problem removing from playing games'; 

       socket.leave('game:' + gameId); 
       // send message to room that the game has been closed 
       io.to('game:' + gameId).emit('game closed'); 
      }); 
     }); 
    } 

}); 
+0

Belki 'oyun 'id tarafından bulunmuyor? Konsolda bitmiş oyunların mesajını kaydetme oyununu görüyor musunuz? – alexmac

+0

bu cevapladı @JohnnyHK cevap yazdıysanız onu seçebilirim –

cevap

0

doc örneği.

var finishedGame = new FinishedGame(game.toObject()); 
0

evet, bnm katılıyorum Johny yanıt ile:

Böylece çizgi şeklinde değiştirin. var oyununu da kullanabilirsinizClone = JSON.parse (JSON.stringify (game)); var finishedGame = yeni FinishedGame (gameClone);

İlgili konular