sql >> Databasteknik >  >> RDS >> Mysql

Hur får man resultat från nodejs med mysql-paketet?

Eftersom node.js är icke-blockerande och asynkron, så i denna kod:

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

console.log(this.users);

data från DB är förmodligen inte laddade ännu i användarvariabeln när du försöker logga in den i konsolen. Du kan kolla upp det om du gör din console.log operation i frågan, till exempel:

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

För att skicka resultatet till en variabel när operationen är klar kan du lägga in ditt klient-DB-anrop till en funktion med callback-parameter och ställa in din variabel när callback anropas, till exempel:

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);
});

Ovanstående kod är bara ett begrepp.



  1. Databasdesign:Flera tabeller kontra en enda tabell

  2. Optimistisk kontra pessimistisk låsning

  3. Är det möjligt att UPPDATERA en JOINED-tabell med hjälp av Codeigniters Active Record?

  4. Hur returnerar jag månadens vecka i MySQL?