sql >> Database >  >> RDS >> Mysql

Hoe de resultaten van nodejs te krijgen met behulp van het mysql-pakket?

Aangezien node.js niet-blokkerend en asynchroon is, dan in deze code:

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

console.log(this.users);

gegevens uit DB zijn waarschijnlijk nog niet geladen in de gebruikersvariabele wanneer u probeert in te loggen op de console. Je kunt het bekijken als je je console.log . doet bewerking binnen de query, bijvoorbeeld:

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

Om het resultaat in een variabele door te geven wanneer de bewerking is voltooid, kunt u uw client-DB-aanroep in een functie met callback-parameter inpakken en uw variabele instellen wanneer de callback wordt aangeroepen, bijvoorbeeld:

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

Bovenstaande code is slechts een concept.



  1. PASS Summit 2013 :Een succes in Charlotte

  2. Rails 5 en Ruby 2.3.3 kunnen libmysql.dll niet laden

  3. Hoe u de dag van een datum haalt in T-SQL

  4. FOUT:fout bij het installeren van mysql2:FOUT:kan de native extensie van gem niet bouwen