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

home2 게시판 Node.js, Express 게시판 list.ejs 를 write 나 home처럼 네비게이션 바에 보여주게

list.ejs 를 write 나 home처럼 네비게이션 바에 보여주게

  • 이 주제에는 1개 답변, 2명 참여가 있으며 codingapple3 년 전에 전에 마지막으로 업데이트했습니다.
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #40912

    이해욱
    참가자
    list.ejs 를 write 나 home처럼 네비게이션 바에 보여주게 할순없나요?
    server.js에서 render 할떄 변수를 하나 더 렌더링해줘서 오류가 뜨는거같은데
    server.js
    app.get('/list', function(요청, 응답){
        db.collection('post').find().toArray(function(에러, 결과){
            console.log(결과)
            응답.render('list.ejs', { posts : 결과 }) //ejs에 보낼 데이터
        })
    })
    app.get('/', function(요청, 응답) { 
      응답.render('index.ejs');
    })
    write.ejs
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
      <title>Document</title>
    </head>
    <body>
      <%- include('nav.html') %>
      <h4 class="container mt-4">글 작성페이지</h4>
      <div class="container mt-3">
        <form action="/add" method="POST">
          <div class="form-group">
            <label>제목</label>
            <input type="text" class="form-control" name="title">
          </div>
          <div class="form-group">
            <label>날짜</label>
            <input type="text" class="form-control" name="date">
          </div>
          <button type="submit" class="btn btn-danger">Submit</button>
        </form>
      </div>
      <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
      <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
      <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    </body>
    </html>
    
    index.ejs
    
    <!doctype html>
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
        <link rel="stylesheet" href="/public/main.css">
        <title>Hello, world!</title>
      </head>
      <body>
        <%- include('nav.html') %>
       
        <h4 >home 입니다.</h4>
        <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
     
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <!-- <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script> -->
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
      </body>
    </html>
    nav.html
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        Todo App
        <button class="navbar-toggler" type="button" data-toggle="collapse"
        data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false"
        aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav">
                <li class="nav-item active">
                    Home <span class="sr-only">(current)
                    </span>
                
                <li class="nav-item">
                    Write
                
                <li class="nav-item">
                    list
            
        </div>
    </nav>
    이렇게 하면 오류가뜨더라구요
    
    eferenceError: C:\Users\atolo\Desktop\moon\views\list.ejs:22
        20|     <div class="container">
        21|       <ul class="list-group">
     >> 22|         <% for (var i = 0; i < posts.length; i++){ %>
        23|           <li class="list-group-item">
        24|             <p>글번호 : <%= posts[i]._id %></p>
        25|             <h4> 할일 제목 : <%= posts[i].제목 %> </h4>
    posts is not defined
        at eval ("C:\\Users\\atolo\\Desktop\\moon\\views\\list.ejs":15:28)
        at list (C:\Users\atolo\Desktop\moon\node_modules\ejs\lib\ejs.js:703:17)
        at tryHandleCache (C:\Users\atolo\Desktop\moon\node_modules\ejs\lib\ejs.js:274:36)
        at View.exports.renderFile [as engine] (C:\Users\atolo\Desktop\moon\node_modules\ejs\lib\ejs.js:491:10)
        at View.render (C:\Users\atolo\Desktop\moon\node_modules\express\lib\view.js:135:8)
        at tryRender (C:\Users\atolo\Desktop\moon\node_modules\express\lib\application.js:657:10)
        at Function.render (C:\Users\atolo\Desktop\moon\node_modules\express\lib\application.js:609:3)
        at ServerResponse.render (C:\Users\atolo\Desktop\moon\node_modules\express\lib\response.js:1039:7)
        at C:\Users\atolo\Desktop\moon\server.js:41:6
        at Layer.handle [as handle_request] (C:\Users\atolo\Desktop\moon\node_modules\express\lib\router\layer.js:95:5)
    오류내용입니다.
    #40948

    codingapple
    키 마스터
    list.ejs 파일 보내줄 때 posts라는 변수명을 안보냈다는 에러같은데 list.ejs 파일 보내주는 곳을 확인해봅시다 
    
    
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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