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

home2 게시판 Node.js, Express 게시판 list 검색기능 만드는 중에 detail.ejs 에러가 나옵니다

list 검색기능 만드는 중에 detail.ejs 에러가 나옵니다

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

    김창모
    참가자

    <div class="container input-group mb-2">
    <input class="form-control" id="search-input">
    <button class="input-group-append btn btn-danger" id="search">검색</button>
    </div>

    <script>
    $('#search').click(function(){
    var 입력한값 = $('#search-input').val()
    window.location.replace('/search?value=' + 입력한값)
    })
    </script>

     

    list.ejs에서 해당코드 작성후 검색버튼을 누르면

    TypeError: /Users/cmong/Desktop/coding/TodoApp1/views/detail.ejs:30
       28|       <div class="card" style="width: 100%">
       29|         <div class="card-body">
    >> 30|           <h5 class="card-title">제목: <%= data.제목 %></h5>
       31|           <h6 class="card-subtitle mb-2 text-muted">날짜: <%= data.날짜 %></h6>
       32|           <p class="card-text">
       33|             Some quick example text to build on the card title and make up the

    Cannot read property '제목' of undefined
       at eval (eval at compile (/Users/cmong/Desktop/coding/TodoApp1/node_modules/ejs/lib/ejs.js:662:12), <anonymous>:15:31)
       at detail (/Users/cmong/Desktop/coding/TodoApp1/node_modules/ejs/lib/ejs.js:692:17)
       at tryHandleCache (/Users/cmong/Desktop/coding/TodoApp1/node_modules/ejs/lib/ejs.js:272:36)
       at View.exports.renderFile [as engine] (/Users/cmong/Desktop/coding/TodoApp1/node_modules/ejs/lib/ejs.js:489:10)
       at View.render (/Users/cmong/Desktop/coding/TodoApp1/node_modules/express/lib/view.js:135:8)
       at tryRender (/Users/cmong/Desktop/coding/TodoApp1/node_modules/express/lib/application.js:640:10)
       at Function.render (/Users/cmong/Desktop/coding/TodoApp1/node_modules/express/lib/application.js:592:3)
       at ServerResponse.render (/Users/cmong/Desktop/coding/TodoApp1/node_modules/express/lib/response.js:1012:7)
       at /Users/cmong/Desktop/coding/TodoApp1/server.js:74:10
       at /Users/cmong/Desktop/coding/TodoApp1/node_modules/mongodb/lib/utils.js:530:9

     

    이런 에러가 발생합니다

     

    detail.ejs 해당부분 코드

     

    <div class="container mt-4">
    <h4 class="text-center">상세 페이지</h4>

    <div class="card" style="width: 100%">
    <div class="card-body">
    <h5 class="card-title">제목: <%= data.제목 %></h5>
    <h6 class="card-subtitle mb-2 text-muted">날짜: <%= data.날짜 %></h6>
    <p class="card-text">
    Some quick example text to build on the card title and make up the
    bulk of the card's content.
    </p>
    <a href="/edit/data._id" class="card-link">수정하기</a>
    </div>
    </div>
    </div>

     

     

    server.js /detail get요청코드

    app.get("/detail/:id", function (요청, 응답) {
    db.collection("post").findOne(
    { _id: parseInt(요청.params.id) },
    function (에러, 결과) {
    console.log(결과);
    응답.render("detail.ejs", { data: 결과 });
    }
    );
    });

     

    list.ejs 에 검색기능을 추가한후 검색버튼을 누르면 detail 페이지로 이동하는것도 아닌데

    왜 갑자기 detail.ejs 에서 에러가 발생하는걸까요 ? ?

    #13774

    codingapple
    키 마스터

    app.get('/search' 

    이 부분 코드는 어떻게 생겼습니까

    #13888

    김창모
    참가자

    server.js

     

    app.get("/search", (요청, 응답) => {
    db.collection("post")
    .find({ 제목: 요청.query.value })
    .toArray((에러, 결과) => {
    console.log(결과);
    });
    });

     

    이렇게 되어있습니다

    #13893

    codingapple
    키 마스터

    /search로 접속하면 db에서 게시물을 찾아온 후에 아무것도 안하고 있군요 

    일단 응답.render() 아니면 응답.send() 이런 걸 써서 응답을 해보도록합시다 

    #13957

    김창모
    참가자

    db에서 게시물을 찾아온 후에 server.js 터미널에서 

    console.log(결과) 를 실행시켰을때 해당 결과가 출력이 되지 않습니다 ㅠㅠ

    #13959

    김창모
    참가자

    해결완료 하였습니다 ㅎㅎ

    개발자 도구 열고 검색 눌러보니 

    can't find variable :$ 라고 나와서 해당 ejs 코드에서 

    query 스크립트를 상단에 배치하였더니 잘 실행됩니다!! 

    이런 간단한 문제인데 코드 지웠다 다시했다 이상한짓만 했네요 ㅎㅎ

    개발자도구 내에서 어디서 문제가 생기는지 찾아보는 습관을 더 들여야겠습니다!

    #13969

    김창모
    참가자

    또 위와같은 에러가 나왔던거는

    에러처리를 하지 않아 서버가 멈춰서 발생하는 문제라고 나왔습니다 !

7 글 보임 - 1 에서 7 까지 (총 7 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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