suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Node.js: SQL-Abfrageergebnisse können nicht in einem Array gespeichert werden

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粉725827686P粉725827686230 Tage vor522

Antworte allen(1)Ich werde antworten

  • P粉046878197

    P粉0468781972024-04-07 12:25:01

    您可以尝试使用单个查询从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 代码中的内部异步方法。

    Antwort
    0
  • StornierenAntwort