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

home2 게시판 Node.js, Express 게시판 전송버튼 누르면 list페이지로 가기

전송버튼 누르면 list페이지로 가기

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

    김현빈
    참가자

    지금 전송버튼을 누르면 /add 로 가서 전송완료 가 뜨고있는 상태입니다!

    쓰기페이지에서 전송버튼 누르면 list페이지로 가려면 어떻게해야하나요?? 

    #34078

    codingapple
    키 마스터

    서버에서 응답.redirect('/list') 이러면 원하는페이지로 이동가능합니다 

    #34093

    김현빈
    참가자

    app.post('/add', function(요청, 응답){
      응답.send('전송완료');
      db.collection('counter').findOne({name : '게시물갯수'}, function(에러, 결과){
        console.log(결과.totalPost)
        var 총게시물갯수 = 결과.totalPost
        db.collection('post').insertOne({ _id : 총게시물갯수 + 1, 이름 : 요청.body.title, 종류 : 요청.body.type, 가격 : 요청.body.price, 나라 : 요청.body.country }, function(에러,결과){
          console.log('저장완료');
          // 몽고디비에서 총게시물갯수가져와서 + 1 했잖아? 그러면 몽고디비에도 업데이트해줘야지 아래는 그 코드임
          db.collection('counter').updateOne({name : '게시물갯수'},{ $inc : {totalPost : 1}}, function(에러, 결과){
            if(에러){return console.log(에러)}
          })
        });
      });
    })

     

    제 코드가 이런데 여기 어디에 추가해야될까요???

    #34094

    김현빈
    참가자

    아 응답.send 이자리에 넣으니까 되네요! 근데 이게 list페이지로 넘어가기는 하는데 방금 추가했던게 안뜨고 새로고침해야 뜨는데 
    list페이지로 넘어가자마자 방금추가한게 보이려면 새로고침하는 코드도 같이 넣어줘야하는건가요??

    #34156

    codingapple
    키 마스터

    응답.어쩌구 코드를 db.collection('counter').updateOne 콜백함수 안에 넣읍시다

    #34205

    김현빈
    참가자

    오우..감사합니다

    #34887

    이종근
    참가자

    위에서 알려주신 대로 했는데요...

    db.collection('counter').updateOne 콜백함수 안에 res.redirect("/list")를 넣으면 저장은 되는데, 콘솔에 아래와 같은 오류가 나면서 목록으로 이동은 안되는데 왜 그러는 걸까요?
    (이것저것 수정하다 "응답"을 "res"로 바꾼 상태입니다.) 

     

    _http_outgoing.js:561
    throw new ERR_HTTP_HEADERS_SENT('set');
    ^

    Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at new NodeError (internal/errors.js:322:7)
    at ServerResponse.setHeader (_http_outgoing.js:561:11)
    at ServerResponse.header (D:\work\TODOAPP\node_modules\express\lib\response.js:794:10)
    at ServerResponse.location (D:\work\TODOAPP\node_modules\express\lib\response.js:915:15)
    at ServerResponse.redirect (D:\work\TODOAPP\node_modules\express\lib\response.js:953:18)
    at D:\work\TODOAPP\server.js:95:19
    at D:\work\TODOAPP\node_modules\mongodb\lib\utils.js:423:9
    at D:\work\TODOAPP\node_modules\mongodb\lib\operations\execute_operation.js:56:66
    at D:\work\TODOAPP\node_modules\mongodb\lib\utils.js:423:9
    at completeEndSession (D:\work\TODOAPP\node_modules\mongodb\lib\sessions.js:152:17) {
    code: 'ERR_HTTP_HEADERS_SENT'
    }
    [nodemon] app crashed - waiting for file changes before starting...

    #34914

    codingapple
    키 마스터

    res.어쩌구를 여러번한듯요 한번만 합시다 

    #34933

    이종근
    참가자

    그러네요. "res.send("전송완료");"를 주석처리 하니, 되네요.

    고맙습니다.

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

About

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

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

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