sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man resultaterne fra nodejs ved hjælp af mysql-pakken?

Da node.js er ikke-blokerende og asynkron, så i denne kode:

client.query("SELECT * FROM users", function (error, results, fields) {
    if (error) {
        //
    }
    if (results.length  > 0) {
        self.users = results;
    }
});

console.log(this.users);

data fra DB er sandsynligvis endnu ikke indlæst i brugervariablen, når du forsøger at logge den ind på konsollen. Du kan tjekke det ud, hvis du laver din console.log handling i forespørgslen, for eksempel:

client.query("SELECT * FROM users", function (error, results, fields) {
    if (error) {
        //
    }
    if (results.length  > 0) {
        console.log(results);
    }
});

For at overføre resultatet til en variabel, når operationen er færdig, kan du pakke dit klient-DB-kald ind i en funktion med tilbagekaldsparameter og indstille din variabel, når tilbagekaldet aktiveres, for eksempel:

function query(sql, callback) {
    client.query(sql, function (error, results, fields) {
        if (error) {
            //
        }
        if (results.length  > 0) {
            callback(results);
        }
    });
}

query("SELECT * FROM users", function(results) {
    self.users = results;
    console.log(self.users);
});

Ovenstående kode er kun et koncept.



  1. Sådan opretter du dynamiske pivottabeller i MySQL

  2. MySQL-forespørgsel ved hjælp af et array

  3. Resultat af tidssubtraktionsformat

  4. Laravel 5.1 - Homestead MySQL-forbindelse. `Forbindelse nægtet` &`Ingen sådan fil eller mappe`