단팥빵
219
2018-11-02 18:38:47
2
418

Node 동기/비동기 질문입니다.


안녕하세요.

node로 개발중인 학생입니다.

다름이 아니라

const db = require('./models');

console.log(db.result)를 정보를 받아오고 싶은데 자꾸 빈 객체만 넘어오네요...ㅠ


동기화를 해줘야 된다는 것을 알겠는데 async await 사용법을 몰라서 다른 블로그나 포스트들을 보고 흉내내봐도 결국에는 문제가 발생하네요ㅠㅠㅠㅠㅠ


어떻게 수정해야 제가 원하는 값을 받아올 수 있을까요??


const db = {};

// async await 변환 필요...
pool.getConnection((err, conn) => {
    conn.query("show databases", (err, results, fields) => {
        if (!err) {
            console.log('testing');
            // 받아오고 싶은 값...
            db.result = JSON.stringify(results);
        } else {
            console.error(err);
        }
        // 커넥션 반납
        if (conn != null) {
            pool.releaseConnection(conn);
        }
    });
});

// 동기화된 결과를 보내야함.
module.exports = db;


0
0
  • 답변 2

  • 르베르크
    472
    2018-11-02 20:52:36

    제가 예전에 만들었던 모듈 인데 이부분 참고해보세요.. 

    위같은 방식은 pool.getConnection 함수 자채가 비동기 인데 

    값 받아오기도 전에 exports 되어서 빈 객체로 넘어가실꺼에요...

    노드는 거의 대부분의 모듈 함수가 비동기라고 보시면됩니다 


    참고 링크

    1
  • 단팥빵
    219
    2018-11-03 14:53:45

    정말 감사합니다.

    결국 exports로 전체를 넘겨야겠군요ㅠㅠㅠ

    정말 감사합니다!!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.