Problemet är detta:
var r = db.demo(query, function(result) { data = result; });
console.log( 'Data : ' + data);
console.log
kommer att köras innan återuppringningsfunktionen anropas, eftersom db.demo
är asynkron, vilket betyder att det kan ta lite tid att slutföra, men hela tiden nästa rad i koden, console.log
, kommer att köras.
Om du vill komma åt resultaten måste du vänta på att återuppringningsfunktionen ska anropas:
var r = db.demo(query, function(result) {
console.log( 'Data : ' + result);
});
Det är så det mesta av kod som hanterar I/O kommer att fungera i Node, så det är viktigt att lära sig om det.