I'm using a Sequelize for my node.js app. I use findOrCreate() method to create a new user if not exist. Accordingly to docs findOrCreate returns an array containing the object that was found or created and a boolean that will be true if a new object was created and false if not.
The sequelize recommend to use spread() method which divides the array into its 2 parts and passes them as arguments to the callback function. First part is a user object and second is boolean if new row was added.
I work in async/await style. My code is:
app.post('/signup', async (req, res) => {
try {
let insertedUser = await User.findOrCreate({
where: { email: req.body.userEmail },
defaults: {
pass: req.body.userPass
}
})
insertedUser.spread((user, created) => {
if(created) {
res.json(user.email)
}
})
} catch (err) {
console.log(`ERROR! => ${err.name}: ${err.message}`)
res.status(500).send(err.message)
}
}
})
After post request I get an error:
ERROR! => TypeError: insertedUser.spread is not a function
Why is that, the doc says it must be a function?