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

home2 게시판 Node.js, Express 게시판 mysql로 node.js 연동할때 req.body.id 값을 못 가져옵니다.

mysql로 node.js 연동할때 req.body.id 값을 못 가져옵니다.

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

    이해욱
    참가자
    server.js
    app.get('/write',function(req, res){
      var id= parseInt(req.body.id);
      console.log(id);
      var sql = 'SELECT id, title, content FROM post WHERE id=?';
      connection.query(sql,[id],function(err,topics){
        console.log(topics);
        res.render('write.ejs',{posts : topics});
      })
    })
    
    app.post('/add', function(req, res){
      var id= parseInt(req.body.id);
      console.log(id);
      var title = req.body.title;
      var content = req.body.content;
      var numberid = 1;
      var sql = 'INSERT INTO post (id, title, content, numberid) VALUES(?, ?, ?, ?)';
      connection.query(sql, [[id], title, content, numberid], function(err, result){
        if(err)
        {
          console.log(err);
          res.status(500).send('Internal Server Error');
        }
        else
        {
          var sql = 'UPDATE count SET totalpost = totalpost +1';
          connection.query(sql,function(err,good){
            if(err)
            {
              console.log(err);
              res.status(500).send('Internal Server Error');
            }
            else
            {
              res.render('index.ejs',{posts : result});
            }
          })
        }
      })
    })
    write.ejs
    
    <form action="/add" method="POST">
                    <input value="<%= posts.id %>" name="id" style="display : none">
                    <label>제목</label>
                    <input type="text" class="form-control" name="title" style="width: 770px;">
                    <label>내용</label>
                    <input type="text" class="form-control wow" name="content" style="width: 770px;">
                    <button type="submit" class="btn btn-primary">Primary</button>
                </form>
     
    에러
    Cannot read properties of undefined (reading 'id')
    at eval ("C:\\Users\\atolo\\Desktop\\server\\node\\views\\write.ejs":15:32)
    at write (C:\Users\atolo\Desktop\server\node\node_modules\ejs\lib\ejs.js:703:17)
    at tryHandleCache (C:\Users\atolo\Desktop\server\node\node_modules\ejs\lib\ejs.js:274:36)
    
    
    #60452

    codingapple
    키 마스터
    ejs파일에 posts.id 말고 posts._id일 수도 있습니다
    #60469

    이해욱
    참가자
    write.ejs
    <input value="<%= posts._id %>" name="id" style="display : none">
    
    해봐도 안됩니다. mysql db에 id로 지정해놨어요 그래도혹시몰라서 해봤는데도 안되요 ㅠㅠ
     
    #60520

    codingapple
    키 마스터
    app.get('/write', 에서 id를 굳이 DB에서 꺼내서 ejs 보내줄 필요는 없어보입니다 
    app.get('/write', 에서 DB에서 꺼내고 posts.id 집어넣는 코드는 없앱시다 
    
    #60608

    이해욱
    참가자
    server.js
    
    app.get('/write',function(req, res){
      res.render('write.ejs');
    })
    app.post('/add', function(req, res){
      var id= parseInt(req.body.id);
      console.log(id);
      var title = req.body.title;
      var content = req.body.content;
      var numberid = 1;
      var sql = 'INSERT INTO post (id, title, content, numberid) VALUES(?, ?, ?, ?)';
      connection.query(sql, [[id], title, content, numberid], function(err, result){
        if(err)
        {
          console.log(err);
          res.status(500).send('Internal Server Error');
        }
        else
        {
          var sql = 'UPDATE count SET totalpost = totalpost +1';
          connection.query(sql,function(err,good){
            if(err)
            {
              console.log(err);
              res.status(500).send('Internal Server Error');
            }
            else
            {
              res.render('index.ejs',{posts : result});
            }
          })
        }
      })
    })
    
    write.ejs
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
            
      <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
     
      <link href="/public/main.css" rel="stylesheet">
        
      <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
      <script type="text/javascript" src="/public/se2/js/service/HuskyEZCreator.js" charset="utf-8"></script>
        
    </head>
    <body>
        <div class="_container">
            <div class="header">
                <%- include('nav.html')%>
            </div>
            <div class="left-menu"></div>
            <div class="center-menu">
                <form action="/add" method="POST">
                    
                    <input value="<%= posts.id %>" name="id" style="display : none;">
                    <label>제목</label>
                    <input type="text" class="form-control" name="title" style="width: 770px;">
                    <label>내용</label>
                    <input type="text" class="form-control wow" name="content" style="width: 770px;">
                    <button type="submit" class="btn btn-primary">Primary</button>
                </form>        
            </div>
            <div class="right-menu"></div>
            <div class="footer"></div>
        </div>
        <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>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.min.js" integrity="sha384-IDwe1+LCz02ROU9k972gdyvl+AESN10+x7tBKgc9I5HFtuNz0wWnPclzo6p9vxnk" crossorigin="anonymous">
        </script>
    </body>
    </html>
    
    에러
    
    eferenceError: C:\Users\atolo\Desktop\server\node\views\write.ejs:28
        26|             <form action="/add" method="POST">
        27|
     >> 28|                 <input value="<%= posts.id %>" name="id" style="display : none">
        29|                 <label>제목</label>
        30|                 <input type="text" class="form-control" name="title" style="width: 770px;">
        31|                 <label>내용</label>
    posts is not defined
    
    
    
    #60626

    codingapple
    키 마스터
    <input value="<%= posts.id %>" name="id" style="display : none"> 필요없는거같다면 지웁시다
    #60654

    이해욱
    참가자
    필요없는게 아니라 id값을 받고싶습니다 
    도대체 id값을 왜 못받을까요
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 호 / 개인정보관리자 : 박종흠