現在、新規登録機能を作っており、パスワードのhash化をするためにプログラムを書いたら
throw err; // Rethrow non-MySQL errors ^ TypeError: Cannot read properties of undefined (reading 'insertId')
というエラーが出て、先に進めなくなってしまっています。
おそらく対象のコードは以下になります。
js
1app.post("/signup", 2 3 (req, res, next) => { 4 console.log("入力値の空チェック"); 5 6 const username = req.body.username; 7 const email = req.body.email; 8 const password = req.body.password; 9 10 const errors = []; 11 12 if(username === ""){ 13 errors.push("ユーザー名が空です"); 14 } 15 if(email === ""){ 16 errors.push("メールアドレスが空です"); 17 } 18 if(password === ""){ 19 errors.push("パスワードが空です"); 20 } 21 22 console.log(errors); 23 24 if(errors.length > 0){ 25 res.render("signup.ejs", {errors:errors}); 26 }else{ 27 next(); 28 } 29 }, 30 (req, res, next) => { 31 console.log("メールアドレスの重複チェック"); 32 const email = req.body.email; 33 const errors = []; 34 connection.query( 35 'SELECT * FROM users WHERE email = ?', 36 [email], 37 (error, results) => { 38 if (results.length > 0) { 39 errors.push("ユーザー登録に失敗しました"); 40 res.render("signup.ejs", {errors:errors}); 41 } else { 42 next(); 43 } 44 } 45 ); 46 }, 47 (req, res) => { 48 console.log('ユーザー登録'); 49 const username = req.body.username; 50 const email = req.body.email; 51 const password = req.body.password; 52 bcrypt.hash(password, 10, (error, hash) => { 53 connection.query( 54 'INSERT INTO users (username, email, password) VALUES (?, ?, ?)', 55 [username, email, hash], 56 (error, results) => { 57 req.session.userId = results.insertId; 58 req.session.username = username; 59 res.redirect('/'); 60 } 61 ); 62 }) 63 } 64 );
どなたか教えていただけませんでしょうか?
回答1件
あなたの回答
tips
プレビュー