Rumah >pangkalan data >tutorial mysql >Bagaimanakah Async/Await Boleh Memudahkan Berbilang Pertanyaan MySQL dalam Node.js?

Bagaimanakah Async/Await Boleh Memudahkan Berbilang Pertanyaan MySQL dalam Node.js?

Susan Sarandon
Susan Sarandonasal
2024-12-02 20:59:11151semak imbas

How Can Async/Await Simplify Multiple MySQL Queries in Node.js?

Pengaturcaraan Asynchronous dengan MySQL dalam Node.js Menggunakan Async/Await

Dalam Node.js, operasi tak segerak digunakan secara meluas untuk mengendalikan interaksi pangkalan data dengan cekap. Sintaks async/wait, yang diperkenalkan dengan Node.js 8 dan seterusnya, menawarkan cara yang mudah untuk mengendalikan operasi sedemikian dalam cara seperti segerak.

Pertimbangkan senario di mana anda perlu melaksanakan berbilang pertanyaan terhadap pangkalan data MySQL dan tambahkan hasil mereka pada rentetan. Secara tradisinya, panggilan balik digunakan untuk mengendalikan pertanyaan tak segerak. Walau bagaimanapun, dengan async/menunggu, anda boleh memudahkan dan menyegerakkan proses ini.

Kod berikut menunjukkan cara menggunakan kata kunci async/menunggu dalam Node.js untuk melaksanakan berbilang pertanyaan MySQL dan menambahkan keputusannya:

const mysql = require('mysql'); // or use import if you use TS
const util = require('util');
const conn = mysql.createConnection({ yourHOST/USER/PW/DB });

// node native promisify
const query = util.promisify(conn.query).bind(conn);

(async () => {
  try {
    const rows1 = await query('select count(*) as count1 from file_managed');
    const rows2 = await query('select count(*) as count2 from file_managed');
    const rows3 = await query('select count(*) as count3 from file_managed');
    const rows4 = await query('select count(*) as count4 from file_managed');

    // append the results to a string
    const appendedText = `${rows1[0].count1} - ${rows2[0].count2} - ${rows3[0].count3} - ${rows4[0].count4}`;

    console.log(appendedText);
  } finally {
    conn.end();
  }
})();

Dalam kod ini, fungsi pertanyaan telah dibalut dengan util.promisify() untuk mengubah fungsi berasaskan panggil balik menjadi fungsi janji-kembali. Menggunakan sintaks async/menunggu, anda kemudian boleh melaksanakan berbilang pertanyaan secara berurutan. Hasil daripada setiap pertanyaan diberikan kepada pembolehubah dan rentetan terakhir yang dilampirkan dilog ke konsol.

Atas ialah kandungan terperinci Bagaimanakah Async/Await Boleh Memudahkan Berbilang Pertanyaan MySQL dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn