sessionの基礎的な使い方について、
node.jsでユーザーがログインした状態で、右上にユーザーネームを表示する
みたいなことを実装するときにはどうすればよいのでしょうか?
今自分はこんな感じでやっているのですが、別のもっと良い方法があるような気がしてなりません。
javascript
1 2//ログイン処理。ユーザーネームとパスワードがあってたら、セッションに情報を保存 3//ここはあんまり質問と関係ないかも? 4router.route('/login') 5 .get((req, res) => { 6 res.render('login')//handlebarsテンプレートを使用 7 }) 8 .post(async (req, res, next) => { 9 try { 10 console.log(req.body)//{ email: 'someone@example.com', password: 'asdf' } 11 var email = req.body.email; 12 var password = req.body.password; 13 const hash = await User.hashPassword(password) 14 User.findOne({ "email": email }, function (err, result) { 15 if (err) 16 console.log(err); 17 18 19 if (result.length == 0) { 20 console.log("email is wrong") 21 } 22 // emailがDBに存在した場合 23 else { 24 if (result.password == hash){ 25 req.session.user = {email: email,username:result.username}; 26 res.redirect('/home'); 27 } 28 29 else 30 console.log("false") 31 } 32 }); 33 } 34 catch (error) { 35 next(error) 36 } 37 }) 38 39 40// '/'へアクセスしてきたらindex.handlebarsを返す 41router.get('/', (req, res) => { 42 res.render('index',{'sessions':req.session}) 43})
一番下で、リクエストしてきた時のsessionをそのままresponseに返すっていうのをやってるのですが、ものすごく自信がないです。
index.handebars
handlebars
1<body> 2<div> 3 you are 4</div> 5</body>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。