Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengembalikan panggilan balik kueri MySQL dan Push ke array di Node.js?

Metode getWord Anda asinkron !

Jadi yang kedua console.log(wordList); dicetak sebelum hasil apa pun dikembalikan (bahkan sebelum Anda memanggil wordList.push(result); untuk pertama kalinya)

Juga karena Anda meminta db (yang tidak sinkron) di getParrotMessage fungsi Anda perlu menggunakan panggilan balik (atau Janji atau apa pun yang dapat digunakan) alih-alih pernyataan pengembalian.

function getParrotMessage(callback) {

    getWord('result', function (err, result) {

        if(err || !result.length) return callback('error or no results');
        // since result is array of objects [{word: 'someword'},{word: 'someword2'}] let's remap it
        result = result.map(obj => obj.word);
        // result should now look like ['someword','someword2']
        // return it
        callback(null, result);

    });
}

function getWord(word, callback) {
    con.query('SELECT * FROM word_table', function(err, rows) {
        if(err) return callback(err);
        callback(null, rows);
    });
};

sekarang gunakan seperti ini

getParrotMessage(function(err, words){
    // words => ['someword','someword2']

});



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Sisipkan Baris dan salin id Peningkatan Otomatis yang dimasukkan ke kolom lain

  2. Permintaan macet di ActiveRecord::QueryCache middleware

  3. Mencoba memeriksa apakah nama pengguna sudah ada di database MySQL menggunakan PHP

  4. Bergabung dengan beberapa tabel untuk mendapatkan nilai NOT EQUAL di MySQL

  5. Bagaimana cara melakukan penyisipan batch di MySQL