node 질문입니다.

node 질문입니다.

QA

node 질문입니다.

본문

 

nodejs에서 mysql연동하고나서 최종 값을 뽑아오려고 하는데. 자꾸 0이 뜨더라구요..

중간에 콘솔찍어보면 값은 1000으로 잘 나오지만, 마지막부분엔 0으로 나오네요ㅠㅠ왜그런걸까요?

 

var tot_price = 0;

pool.getConnection(function(err, connection) {

    if (err) throw err; // not connected!

    connection.query('SELECT * FROM `g5_shop_item2` WHERE it_10 = "1234"', function (error, results, fields) {

 

      connection.release();

              if(err){ // 실패

                  console.log("fail");

                  } else { // 성공

                    tot_price += 1000;

                    console.log("tot_price:::"+tot_price); // 여기서는 1000이라 나오지만

                  }

                });

                console.log("tot_price:::"+tot_price);  // 여기서는 0으로 나옵니다-.-;

            });

 

이 질문에 댓글 쓰기 :

답변 1

일단 mysql인지 mysql2를 사용하신건지 몰라 mysql2의 promise구문으로 작성합니다.


Router.get('/test', async (req, res, next) => {
  let tot_price = 0;
  let connect = await pool.getConnection();
  let result = await connect.query('SELECT * FROM `g5_shop_item2` WHERE it_10 = "1234"');
  if (result[0][0]) {
    tot_price += 1000;
  } else {
    console.log('error');
  }
  console.log(tot_price)
});

 

32066955_1660803206.3739.png

답변을 작성하시기 전에 로그인 해주세요.
전체 1,543
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT