İ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 olarakFinishedGame
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');
});
});
}
});
Belki 'oyun 'id tarafından bulunmuyor? Konsolda bitmiş oyunların mesajını kaydetme oyununu görüyor musunuz? – alexmac
bu cevapladı @JohnnyHK cevap yazdıysanız onu seçebilirim –