Secuela de findOrCreate recurriendo a la captura si se encuentran datos

FindOrCreate se supone que debe find o create según los argumentos que le proporcione.

Entonces, me pregunto por qué está volviendo a la promesa de catch cuando se encuentran data (a user) , ¿cuándo debería devolver los data que se encontraron a la función .spread lugar de intentar insert los datos que ya existen?!.

Como puede ver a continuación, si se ha encontrado o creado un usuario, se ejecutará la misma función independientemente. Toda la función que está haciendo es crear un auth token para el usuario en particular. ¿Pero por alguna razón va directamente a la promesa de catch ?

 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); }); 

¿Intentó quitar la coma final en la instrucción where? Se acaba de golpear un error y parece un culpable 🙂

 where: { userId: details.userId, } 

a

 where: { userId: details.userId }