Mysql
 sql >> Database >  >> RDS >> Mysql

La query di connessione MySQL di Nodejs restituisce il valore alla chiamata di funzione

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.