BCryptを使用してパスワードを暗号化し、それを別の関数に渡してDBに格納したいとします。問題は私がそれを成功裏に渡すことができないということです。書き込みツーdb.js上:「にReferenceError:hashedPassが定義されていない」:私はエラーが表示されるコードのこの部分は、暗号化とハッシュを送信するために持っている18BCryptハッシュを別の関数に渡す
に「write.registerUser()」
書き込みに-db.js私はDBに保存しようが、失敗である
\t \t bcrypt.genSalt(saltRounds, function(err, salt){
\t \t \t bcrypt.hash(query.password, salt, function(err, hashedPass){
\t \t \t \t console.log(hashedPass); //I get the hash printed here with no problems
\t \t \t \t write.registerUser(function(data, fName, lName, email, role, date, hashedPass){
\t \t \t \t \t return();
\t \t \t \t });
\t \t \t });
\t \t });
:
\t registerUser(Callback) {
\t \t var sql = "INSERT INTO users_data (first_name, last_name, email, role, registration_date, active, password) VALUES ('"+fName+"', '"+lName+"', '"+email+"', '"+role+"', '"+date+"', '"+1+"', '"+hashedPass+"')";
\t \t con.query(sql, function (err, result) {
\t \t \t if (err) throw err;
\t \t \t Callback(result);
\t \t });
\t }
'registerUser(コールバック){' ---この関数宣言には、単一の 'Callback'引数しかありません。だから、 'hashedPass'はそこでは完全に定義されていません。 – zerkms
registerUser関数の 'first_name、last-name'などはどこにありますか?それらは、ハッシュ関数から渡されたパラメータと一致しません。もし彼らがそうであれば、それらは定義されていますか? – Tyler
'next()' 'を使う方法 – shahabvshahabi