1
これは意見に基づいている可能性があります。しかし、私はいくつかのアドバイスをしたいと思います。use bcrypt asyncでSequelizeを使用する
だから、私がしたいことは、this threadに記載された方法で行うことができます。 しかし、this threadは、私が非同期を使用する理由を説明しました。
これまで私がこれまで持っていたことは、動作しています。
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();
});
});
});
私はbcrypt asyncを使用しているので、暗号化されたパスワードを別のクエリで保持する必要があります。私のガット感は、bcrypt asyncを続けることでより良い方法があるかもしれないと私に伝えます。
私の質問は、好ましい/より良いアプローチは何ですか?または、私はbcryptを同期して使用するだけで解決するべきですか?
おかげビットをコーディングし、フックにコールバックを使用し、最大ちょうど整頓移動するための方法です。私がこのアプローチについて気に入らない主な理由は、1人の新規ユーザーを持続させる2つのSQL呼び出しがあることです。 –
ただ1つのsql呼び出しがあります。ここではsaveを呼び出していません.Sql呼び出しが処理される前にデータを変更しています。不要なsave呼び出しを書きました。 –
hmm ...レコードはパスワードハッシュ生成される、いいえ?それは非同期です。 –