Maison  >  Questions et réponses  >  le corps du texte

Node.js : Impossible de stocker les résultats de la requête SQL dans un tableau

J'essaie de pousser les résultats d'une requête SQL dans un tableau. Cependant, cela ne semble pas fonctionner. Je ne trouve pas de solution en ligne. Si quelqu'un peut m'aider à résoudre ce problème, je lui en serais très reconnaissant.

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粉725827686176 Il y a quelques jours380

répondre à tous(1)je répondrai

  • P粉046878197

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

    Vous pouvez essayer d'obtenir des données de MySql DB en utilisant une seule requête

    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)

    Cela élimine les méthodes asynchrones internes dans le code js.

    répondre
    0
  • Annulerrépondre