sql >> Databáze >  >> RDS >> Mysql

Jak získat výsledky z nodejs pomocí balíčku mysql?

Protože node.js je neblokující a asynchronní, pak v tomto kódu:

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

console.log(this.users);

data z DB se pravděpodobně ještě nenačtou do uživatelské proměnné, když se ji pokoušíte přihlásit do konzole. Můžete si to ověřit, pokud si uděláte console.log operace v rámci dotazu, například:

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

Chcete-li po dokončení operace předat výsledek do proměnné, můžete zabalit volání klientské databáze do funkce s parametrem zpětného volání a nastavit proměnnou, když je zpětné volání vyvoláno, například:

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

Výše uvedený kód je pouze koncept.



  1. array_push() vs. $array[] =.... Který je nejrychlejší?

  2. Jak jarní úklid databáze

  3. Sloučit styl Pivot tabulky pro zobrazení Datagrid

  4. Kroky k synchronizaci pohotovostního režimu s primární databází v Oracle