Il problema è questo:
var r = db.demo(query, function(result) { data = result; });
console.log( 'Data : ' + data);
Il console.log
verrà eseguito prima che la funzione di callback venga chiamata, perché db.demo
è asincrono, il che significa che potrebbe volerci del tempo per finire, ma per tutto il tempo la riga successiva del codice, console.log
, verrà eseguito.
Se vuoi accedere ai risultati, devi attendere che venga chiamata la funzione di richiamata:
var r = db.demo(query, function(result) {
console.log( 'Data : ' + result);
});
Questo è il modo in cui la maggior parte del codice che si occupa di I/O funzionerà in Node, quindi è importante conoscerlo.