node 질문입니다.

node 질문입니다.

QA

node 질문입니다.

답변 1

본문

 

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 1,543
© SIRSOFT
현재 페이지 제일 처음으로