2016-03-25 6 views
1

FindOrCreate, verdiğiniz argümanlara dayanarak find veya create olduğunu varsayalım. Sequelize findOrBu buluş bulunduğunda yakalamaya geri düşme Oluşturun

Bu yüzden geri catch sözünü düşüyor neden sadece yerine insert için zaten var verileri çalışmakla .spread fonksiyonu bulunmuştur data dönmelidir zaman data (a user), bulunduğunda merak ediyorum?!.

Bir kullanıcı bulunduğunda veya oluşturulduysa aşağıdan görebileceğiniz gibi, aynı işlevi çalıştırmayacaksınız. Tüm bu işlev, belirli bir kullanıcı için auth token oluşturmaktır. Ama bir sebepten dolayı catch sözüne doğru gidiyor !?

User.findOrCreate({ 
    where: { 
     userId: details.userId, 
    }, 
    defaults: { 
     name: details.name, 
     email: details.email, 
    }, 
    attributes: ['userId', 'name', 'email', 'profilePic'], 
    }).spread(function (new_user, created) { 
     console.log("\n\nNew user was created T or F: ", created); 

     // Create the token and then pass it back to our callback along with the user details 
     user.createTokenForUser(new_user.userId, function(token) { 
      cb(token, new_user); 
     }); 
}).catch(function (err) { 
    // For some reason I'm running...?!??!?!?!?! 
    console.log("\n\n", err); 
}); 
+0

benziyor: err 'console.log ("\ n \ n",); ' –

cevap

1

Son ifadede, sondaki virgül kaldırmayı denediniz mi? Onun bir hatayla isabet ve bu bir suçlu :)

where: { 
     userId: details.userId, 
    } 

için
where: { 
     userId: details.userId 
    } 
Eğer gerçek hatayı yapıştırılan yardımcı olurdu