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

home2 게시판 Node.js, Express 게시판 저장 후 list.ejs로 가고 싶은데 잘 안됩니다.

저장 후 list.ejs로 가고 싶은데 잘 안됩니다.

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

    윤정현
    참가자
    post로 add 보낸 뒤에 저장은 잘 되는데 저장 후, 전송완료 화면만 뜨고 list.ejs로 넘어가질 않습니다.
    해당 코드입니다.
    
    
    app.post('/add', function (요청, 응답) {
      응답.send('전송완료')
      // findeOne : db에서 항목을 찾는다
      db.collection('counter').findOne({
        name: '게시물갯수'
      }, function (에러, 결과) {
        console.log(결과.totalPost)
        var 총게시물갯수 = 결과.totalPost;
        // 오브젝트 데이터타입으로 자료 저장
        db.collection('post').insertOne({
          _id: 총게시물갯수 + 1,
          할일: 요청.body.todo,
          날짜: 요청.body.startdate
        }, function (에러, 결과) {
          console.log('저장완료');
          // totalPost 라는 항목도 1증가 updateOne : 하나를 수정하고 싶다
          db.collection('counter').updateOne({
            name: '게시물갯수'
          }, {
            $inc: {
              totalPost: 1
            }
          }, function (에러, 결과) {
            if (에러) {
              return console.log(에러)
            } else {
              db.collection('post').find().toArray(function (에러, 결과) {
                console.log(결과)
                응답.render('list.ejs', {
                  posts: 결과
                });
              });
            }
          })
        });
      });
      console.log(요청.body.todo)
      console.log(요청.body.startdate)
    });
    
    볼드 친 부분이 제가 새로 작성한 부분입니다.
    제 개념으로는 에러가 나지 않았으면 db에 저장된 데이터들을 어레이로 가져와 list.ejs 에 넘겨주고 띄운다로 아는데  
    응답부분만 들어오면 에러가 나네요...
    
    Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
        at ServerResponse.setHeader (_http_outgoing.js:561:11)
    
    에러 메세지입니다...
    #50310

    윤정현
    참가자
    어찌저찌 혼자 해결했네요. 찾아보니 콜백이 두번 호출하여서 난 에러고
    제일처음 응답.send('전송완료') 를 삭제했습니다.
    #50328

    윤정현
    참가자
    뒤에..리다이렉트를 배우는군요....ㅎㅎ..
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 호 / 개인정보관리자 : 박종흠