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

home2 게시판 Node.js, Express 게시판 리다이렉트시 작성했던 글이 반영 되지 않습니다

리다이렉트시 작성했던 글이 반영 되지 않습니다

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

    서정우
    참가자

    MongoClient.connect(
      "mongodb+srv://아이디:비번@cluster0.8cwcv.mongodb.net/db이름?retryWrites=true&w=majority",
      function (err, client) {
        if (err) {
          console.log(err);
        }
        const db = client.db("todoapp");
        app.post("/newpost", function (req, res) {
          db.collection("counter").findOne(
            { name: "게시물 갯수" },
            function (err, result) {
              let totalPostCount = result.totalPost;
              db.collection("post").insertOne(
                {
                  _id: totalPostCount + 1,
                  제목: req.body.title,
                  날짜: req.body.date,
                  현재날짜시간: ${dateString} ${timeString},
                },
                function (err, result) {
                  console.log("저장완료");
                  db.collection("counter").updateOne(
                    { name: "게시물 갯수" },
                    { $inc: { totalPost: 1 } },
                    function () {}
                  );
                }
              );
            }
          );
          res.redirect("/list");
        });

    .....

    리다이렉트로 list 화면으로 넘어가면 방금 입력한 글이 확인되지 않고, 리스트 화면에서 새로 고침을 하여야 반영이 되는데,

    해결 방법을 모르겠습니다 

     

    #28258

    codingapple
    키 마스터

    res.redirect("/list"); 를 updateOne 콜백함수 안에 집어넣읍시다 

    #28264

    서정우
    참가자

    와... 바로 됐는데 이게 어떤 차이가 있는건가요? 두 위치 모두 결국 app.post 함수 안에서 마지막으로 실행되는 위치인데...

    #28277

    codingapple
    키 마스터

    자바스크립트는 위에서부터 한줄한줄 실행되지 않습니다 

    insertOne updateOne 같은것들은 늦게 실행되는데 늦게실행되는 코드를 발견하면 제껴두고 바로 다음줄 실행하려고 합니다 

    #28288

    서정우
    참가자

    insertOne updateOne 얘네들이 비동기 함수여서 그랬던거군요! 이해가 됐습니다

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

About

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

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

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