Node.js: SQL-Abfrageergebnisse können nicht in einem Array gespeichert werden
P粉725827686
P粉725827686 2024-04-06 14:14:46
0
1
578

Ich versuche, die Ergebnisse einer SQL-Abfrage in ein Array zu übertragen. Allerdings scheint es nicht zu funktionieren. Ich kann online keine Lösung finden. Wenn mir jemand bei der Lösung dieses Problems helfen kann, wäre ich sehr dankbar.

let data = [];
        connection.query("SELECT DISTINCT referer FROM publisher", (error, results) => {
        if (error) {
            console.log(error);
        } else {
            results.forEach(async (result) => {
                let referer = result.referer;
                let today = new Date();
                for (let i = 0; i < 24; i++) {
                    let hour = i;
                    let start = new Date(today);
                    start.setHours(hour, 0, 0, 0);
                    let end = new Date(today);
                    end.setHours(hour, 59, 59, 999);
                    connection.query("SELECT COUNT(*) AS count FROM publisher WHERE referer = ? AND first_seen >= ? AND first_seen <= ?", [referer, start, end], (error, results) => {
                        if (error) {
                            console.log(error);
                        } else {
                            let count = results[0].count;
                            data.push({
                                referer: referer,
                                hour: hour,
                                count: count
                            });
                        }
                    });
                }
            });
        }
    });

P粉725827686
P粉725827686

Antworte allen(1)
P粉046878197

您可以尝试使用单个查询从MySql DB获取数据

select referer, hour(first_seen) h, count(*) n
from publisher
where date(first_seen) = curdate()
group by referer, hour(first_seen)
order by referer, hour(first_seen)

这样就消除了 js 代码中的内部异步方法。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage