Это может быть мнение основано. Но я хотел бы получить совет.use Sequelize with bcrypt async
Итак, что я хочу сделать, можно сделать так, как указано в this thread. Но this thread сделал хороший момент, почему я хотел бы использовать async.
Вот что у меня есть, и это работает.
User.create({email: req.body.email, password: req.body.password}).catch(function(err){
console.log(err);
});
User.beforeCreate(function(user) {
const password = user.password;
user.password = '';
bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt) {
if(err) console.error(err);
bcrypt.hash(user.password, salt, null, function(err, hash) {
if(err) console.error(err);
user.password = hash;
user.save();
});
});
});
Поскольку я использую async для bcrypt, мне нужно будет сохранить зашифрованный пароль в другом запросе. Чувство моего чувства говорит мне, что может быть лучший способ использовать асинхронный скрипт bcrypt с sequelize.
Мой вопрос: какой предпочтительный/лучший подход? Или я просто соглашаюсь с использованием bcrypt синхронно?
Спасибо за ответ. Основная причина, по которой мне не нравится в этом подходе, - это два вызова sql для сохранения одного нового пользователя. –
Существует только один вызов sql, мы не вызываем сохранение здесь, мы меняем данные до того, как вызов sql стал более явным, вы написали сохранение вызова, который не требуется –
hmm ... Запись может сохраняться до хэша пароля генерируется, нет? так как это async .. –