首页 > 解决方案 > 在 Node.js 中获取嵌套 SQL 查询的空响应

问题描述

我有一个带有用户表的建筑物数据库,它可以有多个建筑物。我编写了一条路线,它接收用户 ID 并将注册给该用户的所有建筑物的详细信息发回。响应包括建筑物 -> 楼层 -> 房间。

调试代码可以让我在每个查询中返回有效数据,但最终响应始终为空。我知道这里有一些异步问题,似乎无法找出解决方案。

    var rooms = []
    var buildings_info = { Buildings:[] }
    var floor_response = { Floors: [] }

    var query = "Select Building_Id, Building_Address from Buildings WHERE ?? = ?";
    var table = ["User_Id", user_id];
    query = mysql.format(query, table);

    connection.query(query, function(error, data){

        for(let k=0; k<data.length; k++)
        {

            floor_response = { Floors: [] }

            var query2 = "Select Floor_Id, Floor_Name from Floors WHERE ?? = ?";
            var table2 = ["Building_Id", data[k].Building_Id]

            query2 = mysql.format(query2, table2);

            connection.query(query2, function(error, data2){
                for(let l=0; l<data2.length; l++)
                {
                    var room_response = { Rooms : [] }

                    var query3 = "Select Room_Id, Room_Name from Rooms where ?? = ?";
                    var table3 = ["Floor_Id", data2[l].Floor_Id]

                    query3 = mysql.format(query3, table3);

                    connection.query(query3, function(error, data3){

                        for(let m=0; m<data3.length; m++)
                        {
                            debug("for 3: "+data3[m].Room_Name)
                            room_response.Rooms.push({"Room_Id":data3[m].Room_Id, "Room_Name":data3[m].Room_Name})
                            debug("Rooms Data: "+JSON.stringify(room_response))
                        }
                    })

                floor_response.Floors.push({"Floor_Id":data2[l].Floor_Id, "Floor_Name":data2[l].Floor_Name, "Rooms":room_response})
                }

            })
            buildings_info.Buildings.push({"Building_ID":data[k].Building_Id, "Building_Address":data[k].Building_Address, "Floors":floor_response})
        }
reply({"Buildings":buildings_info})

标签: javascriptnode.js

解决方案


推荐阅读