我正在执行以下代码行以将用户插入我的应用程序;
models.User.create({
emailAddress: request.payload.emailAddress,
hashedPassword: request.payload.password,
}).then(function (user) {
return models.X.create({
membershipExpires: moment(),
userId: user.id
}).then(function (x) {
return models.ContactDetails.create({
userType: 'X',
userId: x.userId,
city: request.payload.contactDetails.city,
postcode: request.payload.contactDetails.postcode
}).then(function () {
if (!user.sendWelcomeEmail())
console.log('sent welcome email yoo');
return reply("User created!");
})
})
}).catch(function (error) {
return reply(Boom.badRequest('Validation error'))
})
});
当由于电子邮件字段上的唯一约束而失败时,将重复执行插入,直到我终止该进程。它正在尝试在每次迭代时插入一个新用户,因为bcrypt hashedPassword字段不同。
为什么会这样?我在节点5.7上使用HapiJS和Sequelize