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)
});
!-->
답변을 작성하시기 전에 로그인 해주세요.