Karena node.js tidak memblokir dan tidak sinkron, maka dalam kode ini:
client.query("SELECT * FROM users", function (error, results, fields) {
if (error) {
//
}
if (results.length > 0) {
self.users = results;
}
});
console.log(this.users);
data dari DB mungkin belum dimuat ke variabel pengguna saat Anda mencoba masuk ke konsol. Anda dapat memeriksanya jika Anda melakukan console.log
operasi dalam kueri, misalnya:
client.query("SELECT * FROM users", function (error, results, fields) {
if (error) {
//
}
if (results.length > 0) {
console.log(results);
}
});
Untuk meneruskan hasilnya ke dalam variabel saat operasi selesai, Anda dapat membungkus panggilan DB klien Anda ke dalam fungsi dengan parameter panggilan balik dan mengatur variabel Anda saat panggilan balik dipanggil, misalnya:
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);
});
Kode di atas hanyalah sebuah konsep.