Rumah  >  Artikel  >  hujung hadapan web  >  Cara memanggil prosedur tersimpan SQL menggunakan Node.js dan dapatkan hasilnya

Cara memanggil prosedur tersimpan SQL menggunakan Node.js dan dapatkan hasilnya

PHPz
PHPzasal
2023-04-07 09:32:061171semak imbas

Node.js, sebagai persekitaran berjalan JavaScript sebelah pelayan, telah menjadi teknologi yang sangat popular. Untuk pembangun Node.js, memanggil prosedur tersimpan pangkalan data ialah cara yang berkesan untuk melaksanakan pertanyaan pangkalan data yang kompleks. Walau bagaimanapun, bagaimanakah Node.js memanggil prosedur tersimpan SQL dengan betul berbanding dengan bahasa pengaturcaraan lain?

Artikel ini akan memperkenalkan cara menggunakan Node.js untuk memanggil prosedur tersimpan SQL dan mendapatkan hasilnya.

Menyambung ke pangkalan data

Sebelum menggunakan Node.js untuk menyambung ke pangkalan data, anda perlu memasang pemacu pangkalan data Node.js yang sepadan. Artikel ini mengambil pustaka mysqljs sebagai contoh Mula-mula, anda perlu memperkenalkan perpustakaan ini ke dalam projek Node.js:

var mysql = require('mysql');

Sebelum menyambung ke pangkalan data, anda perlu mencipta kumpulan sambungan MySQL. .

var pool  = mysql.createPool({
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bob',
  password        : 'secret',
  database        : 'my_db'
});

Sila pastikan untuk menggantikan host, user, password dan database dengan maklumat sambungan pangkalan data yang betul. Selepas kolam sambungan berjaya dibuat, anda boleh menggunakan kod berikut untuk menyambung ke pangkalan data.

pool.getConnection(function(err, connection) {
  // 在此处处理连接错误
  connection.query('SELECT * FROM customers', function(err, rows) {
    // 在此处处理查询结果
    connection.release(); // 释放连接
  });
});

Sebelum melepaskan sambungan, ada satu perkara yang perlu diperhatikan: apabila menggunakan prosedur tersimpan MySQL, tidak perlu melepaskan sambungan. Kerana prosedur yang disimpan akan menutup sambungan secara automatik. Dalam contoh seterusnya, anda akan belajar cara memanggil prosedur tersimpan.

Memanggil prosedur tersimpan

Katakan anda mempunyai prosedur tersimpan bernama getCustomers dengan senarai parameter berikut:

  • in_start: Nombor halaman berasaskan sifar .
  • in_amount: Bilangan rekod untuk dipaparkan.
  • out_total_rows: jumlah bilangan baris.
  • out_total_pages: Jumlah bilangan halaman.

Contoh berikut menunjukkan cara memanggil prosedur tersimpan menggunakan Node.js.

pool.getConnection(function(err, connection) {
  // 在此处处理连接错误
  connection.query('CALL getCustomers(?, ?, @total_rows, @total_pages)', [0, 10], function(err, rows) {
    if (err) throw err;

    // 执行第二个查询以获取返回值
    connection.query('SELECT @total_rows AS total_rows, @total_pages AS total_pages', function(err, rows) {
      if (err) throw err;

      var totalRows = rows[0][0].total_rows;
      var totalPages = rows[1][0].total_pages;

      console.log('Total rows: ' + totalRows);
      console.log('Total pages: ' + totalPages);

      connection.release();
    })
  });
});

Dalam baris pertama, kami memanggil prosedur tersimpan. Ambil perhatian bahawa kami menggunakan ? sebagai ganti setiap parameter dalam prosedur yang disimpan. Dalam contoh, kami menghantar dua parameter kepada prosedur yang disimpan: 0 dan 10. @total_rows dan @total_pages ialah dua parameter output prosedur tersimpan. Selepas pertanyaan pertama dilaksanakan, kita perlu melaksanakan satu lagi pertanyaan SQL untuk mendapatkan nilai dengan parameter output. Selepas anda memperoleh parameter output, anda boleh mengendalikan nilai.

Kesimpulan

Menggunakan Node.js untuk menyambung ke pangkalan data dan memanggil prosedur tersimpan memerlukan pengendalian yang teliti terhadap pengumpulan sambungan dan pelepasan sambungan. Tidak perlu menutup atau melepaskan sambungan secara manual semasa melaksanakan prosedur tersimpan. Menggunakan contoh di atas, prosedur tersimpan SQL boleh dilaksanakan dengan betul dan keputusan diperoleh.

Atas ialah kandungan terperinci Cara memanggil prosedur tersimpan SQL menggunakan Node.js dan dapatkan hasilnya. 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