在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ node.js 嵌套查詢的數(shù)據(jù)json.stringify后丟失數(shù)據(jù)?

node.js 嵌套查詢的數(shù)據(jù)json.stringify后丟失數(shù)據(jù)?

數(shù)據(jù)庫查詢

function query(sql) {
    return new promise((resolve, reject) => {
        pool.getConnection(function (err, conn) {
            if (err) {
                reject(err);
            } else {
                conn.query(sql, function (err, rows, cols) {
                    if (err) {
                        conn.release();
                        reject(err)
                    } else {
                        //釋放連接
                        conn.release();
                        //事件驅(qū)動(dòng)回調(diào)
                        resolve({ rows: rows, cols: cols });
                    }
                });
            }
        });
    });
};
exports.myTickets = (userId, cb) => {
    let sql = util.format('select ticketId,number from ticket_Numbers where userId="%s"', userId);
    db.query(sql)
        .then((data) => {
            let tickets = data.rows;
            tickets.map(ticket => {
                db.query(util.format('select userId,number from ticket_numbers where ticketId="%s"', ticket.ticketId))
                    .then((players) => {
                        ticket.players = players.rows;
                    });
            })
            console.log(tickets);    //這里log出來有players
            console.log(JSON.stringify(tickets));    //stringify之后 players丟失
            cb({ success: true, tickets: tickets });
        })
        .catch(err => {
            console.log(err.stack);
            cb({ success: false, message: err.message });
        });
}

結(jié)果:
圖片描述

node新手,請(qǐng)教為什么會(huì)這樣,哪里寫錯(cuò)了?

回答
編輯回答
魚梓
let getTickets = (userId) => {
    let sql = util.format('select ticketId,number from ticket_Numbers where userId="%s"', userId);
    return db.query(sql);
}
exports.myTickets = function (userId, cb) {
    getTickets(userId).then(async (data) => {
        let tickets = data.rows;
        for (let ticket of tickets) {
            await db.query(util.format('select userId,number from ticket_numbers where ticketId="%s"', ticket.ticketId))
                .then((players) => {
                    ticket.players = players.rows
                });
        }
        cb({ success: true, tickets: tickets });
    });
}

搞定了
2018年5月5日 08:50