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

home2 게시판 Node.js, Express 게시판 본인이 쓴 글에만 삭제버튼 만들기 관련 질문

본인이 쓴 글에만 삭제버튼 만들기 관련 질문

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #110803

    김도균
    참가자
    안녕하세요 선생님 다름이 아니고 제가 본인이 쓴 글에만 삭제 버튼을 만드는 숙제를 하고 있었는데 우선 제 머릿속에서 드는 생각이 요청.user정보를 ejs에
    내려주고 ejs에서 파일의 작성자의 _id를 추출해서 같은지 비교하고 같을 경우에만 삭제 버튼을 유지하는 식으로 시작했습니다
    
    
    app.get("/list/:id", async (req, res) => {
        try{
            var result = await db.collection('post').find().skip((req.params.id - 1) * 5).limit(5).toArray()
            var count = await db.collection('post').find().toArray()
            var loginDivision = new ObjectId(req.user._id);
        }catch (e){
            res.redirect("/login")
        }
        let userData = req.user
        if(userData == null){
            let tempUserdata = 0;
            res.render("list.ejs", {
                data: result,
                count: count,
                member : tempUserdata,
                loginDiv : loginDivision
            })
        }else{
            res.render("list.ejs", {
                data: result,
                count: count,
                member : userData,
                loginDiv : loginDivision
            })
        }
    })
    
    
    var userDiv = $('.user-con').data()
    var loginDiv = "<%=loginDiv%>"
    console.log(userDiv.id, loginDiv)
    if(userDiv !== loginDiv){
        $(".delete").css("display","none")
    }
    
    이렇게 짯고 .delete의 클래스를 삭제 버튼이 가지고 있기 때문에 이걸 지우는 형식으로 진행했는데 
    
    
    var userDiv = $('.user-con').data()
    var loginDiv = "<%=loginDiv%>"
    console.log(userDiv.id, loginDiv)
    해당 부분이 분명히 로그상 같은 값으로 출력이 되었는데(object 객체나 array객체도 아님)
    if(userDiv !== loginDiv){
    $(".delete").css("display","none")
    }
    왜 해당 부분이 실행이 되지 않는지 궁금해서 이렇게 문의드립니다 감사합니다
    #110804

    codingapple
    키 마스터
    loginDivision는 ObjectId같은데 문자로 바꿔서 보내봅시다 
    근데 $(".delete").css("display","none") 이건 .delete 버튼 모두를 안보이게 처리하는거라
    해당되는것만 지워야할듯요
    #110849

    김도균
    참가자
    넵 loginDivision 값을 그냥 req.user._id로 보내니까 정상적으로 if문 통과하는 점 확인했습니다 
    또한 $(".delete").css("display","none") 해당 부분도 반복문으로 처리하여 일부만 보이게끔 수정했습니다 조언 감사합니다
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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