처음하는개발
329
2021-05-24 17:06:52
2
147

nodejs 세션에따른 화면변화 질문있습니다!!


현재 로그인했을때(세션이있을때)와 비로그인일때(세션이없을때)를 나누어서 화면을 출력하고싶은데 

그게 잘 되지않습니다..ㅠㅠ

router.post('/', function (req, res, next) {
  var userId = req.body['userId'];
  var userPw = req.body['userPw'];
  

  conn.query('select * from testuser where testid=? and testpwd=?',[userId,userPw], function (err, rows, fields) {
      if (!err) {
          if (rows[0]!=undefined) {
            req.session.userId = userId;
         
            res.send('<script>alert("정상로그인");location.href="/";</script>');
            console.log('Post:', req.session.userId);
          }else {
            res.send('<script>alert("아이디또는비밀번호를 다시확인하세요!!");location.href="/";</script>');
          }

      } else {
          res.send('error : ' + err);
      }
  });
});

로그인을 하고 index로 보내면 index에서 세션에따라 화면을 다르게하고싶은데 문제가생깁니다.

console에 userId를 찍으면 index에 있다고 넘어갔다고 뜨고 console.log에도 출력이되는데

<% if(userId){%>
        <H1>로그아웃버튼(세션있음)</H1>
        <a href="logout">logout</a>
        <%}else{%>
        <h1>로그인버튼(세션없음)</h1>
        <a href="login">login</a>
        
        <%}%>

이런식으로 ejs페이지에서 세션별로 화면을 나누려고하면 세션이 있든없든 세션이 없는쪽으로만 화면에 나옵니다.. index.js를 건들어야하는건지 아니면 ejs자체가 틀린건지모르겠습니다 

console.log에는 userId가 잘넘어가서 더욱더 모르겠습니다

선배님들의 절실한 도움이 필요합니다!!


0
  • 답변 2

  • jimjones
    832
    2021-05-24 18:20:39

    사용자값을 req 에다 담아주잖아요 

    req.session.userId = userId;

    그럼 ejs에서 req 객체에 접근할 수 있도록 해주면 되지 않을까요?


  • 처음하는개발
    329
    2021-05-24 19:04:57
    index.ejs에 req.session데이터를 넘겨주니까 해결됐습니다 감사합니다!!
  • 로그인을 하시면 답변을 등록할 수 있습니다.