• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 detail.ejs 에서 작성자만 수정 삭제 버튼을 보이게하

detail.ejs 에서 작성자만 수정 삭제 버튼을 보이게하

10 글 보임 - 1 에서 10 까지 (총 15 중에서)
  • 글쓴이
  • #62574

    이해욱
    참가자
    <script>에서 server.js 받은 데이터 값을 어떻게 받나요?
    server.js
    var sql = 'SELECT * FROM login INNER JOIN post ON login.id=post.numberid WHERE post.id=?';
      connection.query(sql,[id],function(err,topcis){
    ㅇㄴㄹㄴ~!@어쩌고 저쩌고
    응답.render('detail.ejs', {posts: topcis});
    details.ejs
    <dd class="user_id"><%= posts[0].user_id %></dd>
    
    
    이 부분을
    <script>
    for(var i=0;i<$('.user_id').length;i++)
        {
         모든유저 아이디->   if($('.user_id').eq(i).value !=$('.user_id').eq(0).value); <- 현재 로그인 한 아이디
            {
                !!~!11`1수정 삭제 버튼 안보이게하기
            }
        }
    </script>
    
    <script>에서 post[i].user_id 부분을 어떻게 받을수있나요?
    
    
    #62597

    codingapple
    키 마스터
    script태그안에서는 문자자료안에 '<%- ejs변수명 %>' 쓰면 된다는군요
    #62630

    이해욱
    참가자
        for(var i=0;i< '<%-posts.user_id%>'.length;i++)
        {
            console.log('<%-posts[i].user_id%>');
        }
    
    
    ReferenceError: C:\Users\atolo\Desktop\server\node\views\detail.ejs:87
        85|     for(var i=0;i< '<%-posts.user_id%>'.length;i++)
        86|     {
     >> 87|         console.log('<%-posts[i].user_id%>');
        88|     }
        89|     </script>
        90|     <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous"></script>
    i is not defined
    
    
    i를 정의 못한다고하는데
     
        for(var i=0;i< '<%-posts.user_id%>'.length;i++)
        {
            console.log(i);
        }
    
    
    
    i는 잘 출력합니다
    
        for(var i=0;i< '<%-posts.user_id%>'.length;i++)
        {
            console.log('<%-posts[i].user_id%>');
        }
    
    
    
    #62656

    이해욱
    참가자
    server.js
    var sql3='SELECT user_id FROM login';
              connection.query(sql3,function(err,wow3){
                if(err)
                {
                  console.log(err);
                  res.status(500).send('Internal Server Error');
                }
                else
                {
                  응답.render('detail.ejs', {posts: topcis, wow:wow3});
                }
    detail.ejs
    for(var i=0; i < '<%-wow%>'.length; i++)     ->   -모든 유저의 아이디 갯수가맞나요?
        {
            console.log('<%-wow[i].user_id%>');
        }
    
    ReferenceError: C:\Users\atolo\Desktop\server\node\views\detail.ejs:86
        84|     for(var i=0; i < '<%-wow%>'.length; i++)
        85|     {
     >> 86|         console.log('<%-wow[i].user_id%>');
        87|     }
        88|     </script>
        89|     <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous"></script>
    i is not defined
    [i]의 정의못합니다
    
    console.log('<%-wow[0].user_id%>');
    console.log('<%-wow[1].user_id%>');  이렇게 되면 유저가 잘뜹니다
    
    #62690

    codingapple
    키 마스터
    ejs변수는 문자자료라서 .length붙이거나 하면 제대로 안나올걸요 
    반복문에선 for(var i=0;i<$('.user_id').length;i++) 이런거 잘 되면 이거 씁시다 
    
    #62709

    이해욱
    참가자
    
    
    알려주신대로
    반복문에선 for(var i=0;i<$('.user_id').length;i++) -> 이렇게 해버리면
    그냥 user_id 클래스에 들어간 글쓴이 값이 되버립니다
    
    
    그러니까 제가 구현하고 싶은게
    글작성자만 삭제 수정 버튼이 보이게 하고싶습니다
    
    그럴려면
    스크립트 부분에서
    반복문으로 모든 유저를 찾고 지금 글쓴 아이디일경우
    ex)
    for(var i=0; i < '<%-wow.user_id%>'.length; i++) 
        {
          console.log('<%-wow[i].user_id%>'); -> 모든 아이디 출력
           if('<%-wow[i].user_id%>'==현재 글쓴 아이디)
            {
             !~!~!~버튼 보이게 하기
            }
        }
    
    이렇게 하고싶습니다
    #62719

    codingapple
    키 마스터
    근데 SELECT user_id FROM login 해서 모든 유저아이디를 detail.ejs로 보내는건 좋지않아보입니다 
    그 게시물의 유저아이디 하나만 보내면 될듯요
    #62833

    이해욱
    참가자
    현재 로그인 유저 글쓴 작성자 조건을 어떻게줘야할까요?
    
    for(var i=0;i<글쓴이 목록;i++)
        {
            글쓴 유저 == 로그인 유저   
            {
                $('.bt_wrap').addClass('show-modal');
            }
            else
            {
                $('.bt_wrap').removeClass('show-modal');
            }
        }
    
    저는 이렇게 해봤는데 안되더라구요 ㅠㅠ
    for(var i=0;i<$('.user_id').length;i++)
        {
            if($('.user_id') == '<%- posts[0].user_id %>')   ->
            {
                $('.bt_wrap').addClass('show-modal');
            }
            else
            {
                $('.bt_wrap').removeClass('show-modal');
            }
        }
    #62837

    codingapple
    키 마스터
    서버에서 글 작성자랑 req.user랑 같은지 비교해서 true/false 값을 ejs파일로 보내거나
    로컬스토리지에 유저정보있으면 그거랑 글 작성자랑 같은지 비교해도 됩니다
    #62916

    이해욱
    참가자
    server.js
    app.get('/detail/:id',로그인했니, function(요청, 응답){
      var id= parseInt(요청.params.id);
      var park= 요청.user[0].user_id;  ->제가 생각으론 이게 로그인 유저 이고
      var yong=요청.body.yong;        ->제 생각은 이게 글쓴이 유저라고 생각합니다
      console.log(park);
      console.log(yong);
    
    detail.ejs
    <dt>글쓴이</dt>
         <dd class="user_id" name="yong"><%= posts[0].user_id %></dd>
    -----------------------------------------------------------------
    서버에서 콘솔할경우 요청.body.yong 이 undefined 뜹니다
    
    유저 로그인한건 요청.user[0].user_id 인거같은데
    글쓴이 유저를 어떻게 표현해야할까요?
    
    이런 기본적인 걸 자꾸 물어봐서 죄송합니다
    빨리 코딩 실력좀 늘었으면 좋겠습니다
    매번 답변 달아주셔서 감사합니다 ㅠ
     
10 글 보임 - 1 에서 10 까지 (총 15 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠