node.js 嵌套查询的数据json.stringify后丢失数据?

发布于 2022-09-07 16:36:28 字数 1658 浏览 23 评论 0

数据库查询

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();
                        //事件驱动回调
                        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 });
        });
}

结果:
图片描述

node新手,请教为什么会这样,哪里写错了?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤檠 2022-09-14 16:36:28
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 });
    });
}

搞定了
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文