前提・実現したいこと
node.js express でbcrypt.compareを使いログインの機能を実装
発生している問題・エラーメッセージ
trueの処理に行かず、elseの処理になってしまう
エラーメッセージ
該当のソースコード
node.js
1router.post("/login", (req, res) => { 2 connection.query( 3 "select * from users where name = ?", 4 [req.body.userName], 5 (error, results) => { 6 const isEqual = bcrypt.compare(req.body.password, results[0].password, 7 (error, isEqual) => { 8 console.log(isEqual); 9 return isEqual; 10 } 11 ); 12 if (results.length > 0 && isEqual) { 13 req.session.userId = results[0].id; 14 req.session.userName = results[0].name; 15 res.flash("message", "ログインしました"); 16 res.redirect(`/index/${results[0].id}`); 17 } else { 18 res.flash("message", "ログインに失敗しました"); 19 res.flash("userName", req.body.userName); 20 res.redirect("/users/login"); 21 } 22 } 23 ); 24});
試したこと
isEqualを消し、result.length > 0 だけでif文を書くとtrueの処理に進んだ。
console.logでisEqualの値はtrueになっている事は確認している。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー