테스트 사이트 - 개발 중인 베타 버전입니다

node 질문입니다. 채택완료

mmkk2 3년 전 조회 2,006

 

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개

채택된 답변
+20 포인트
아르키어드

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

</p>

<p>Router.get('/test', async (req, res, next) => {</p>

<p>  let tot_price = 0;</p>

<p>  let connect = await pool.getConnection();</p>

<p>  let result = await connect.query('SELECT * FROM `g5_shop_item2` WHERE it_10 = "1234"');</p>

<p>  if (result[0][0]) {</p>

<p>    tot_price += 1000;</p>

<p>  } else {</p>

<p>    console.log('error');</p>

<p>  }</p>

<p>  console.log(tot_price)</p>

<p>});</p>

<p>

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인