Rumah  >  Artikel  >  hujung hadapan web  >  Cara melakukan pertanyaan segerak dalam Node.js

Cara melakukan pertanyaan segerak dalam Node.js

PHPz
PHPzasal
2023-04-07 09:30:58767semak imbas

Dalam Node.js, pertanyaan pangkalan data selalunya diperlukan. Menyoal pangkalan data ialah operasi I/O, dan panggilan tak segerak biasanya digunakan untuk mengelak daripada menyekat acara lain. Walau bagaimanapun, dalam beberapa kes kita perlu melakukan pertanyaan segerak. Artikel ini akan memperkenalkan cara melakukan pertanyaan segerak dalam Node.js.

1. Pertanyaan tak segerak Node.js

Biasanya, Node.js menggunakan pertanyaan tak segerak untuk mengelak daripada menyekat acara lain. Sebagai contoh, kita boleh menggunakan kumpulan sambungan mysql Node.js untuk melaksanakan pertanyaan tak segerak seperti berikut:

const mysql = require('mysql');
const pool = mysql.createPool({
  host: 'localhost',
  user: 'username',
  password: 'password',
  database: 'database_name'
});

function asyncQuery(sql, values, callback) {
  pool.getConnection(function(err, connection) {
    if (err) {
      return callback(err);
    }
    connection.query(sql, values, function(err, results) {
      connection.release();
      if (err) {
        return callback(err);
      }
      callback(null, results);
    });
  });
}

Dalam kod di atas, fungsi asyncQuery akan melaksanakan pertanyaan tak segerak dan menghantar keputusan melalui The fungsi panggil balik kembali.

2. Pertanyaan segerak Node.js

Dalam sesetengah kes, kami perlu melaksanakan pertanyaan SQL secara segerak, seperti memuatkan kandungan pangkalan data semasa pemula. Dalam Node.js, anda boleh menggunakan modul sync-mysql untuk melaksanakan pertanyaan segerak. sync-mysqlModul akan membuat sambungan baharu secara automatik untuk setiap pertanyaan dan menangguhkan penutupan sambungan untuk membenarkan penggunaan semula sambungan. Berikut ialah contoh pertanyaan segerak:

const SyncMySQL = require('sync-mysql');
const connection = new SyncMySQL({
  host: 'localhost',
  user: 'username',
  password: 'password',
  database: 'database_name'
});

try {
  const rows = connection.query('SELECT * FROM users');
  console.log(rows);
} catch (err) {
  console.error(err);
}

Dalam kod di atas, kami mencipta sambungan SyncMySQL, laksanakan pertanyaan menggunakan kaedah query dan menyimpan hasilnya dalam rows pembolehubah. Jika ralat berlaku, ralat akan ditangkap melalui pernyataan catch dan mesej ralat akan dikeluarkan.

Perlu diambil perhatian bahawa pertanyaan segerak boleh menyekat acara lain dalam aplikasi, jadi hanya gunakan pertanyaan segerak apabila perlu. Jika anda perlu melaksanakan berbilang pertanyaan, lebih baik menggunakan panggilan tak segerak.

Kesimpulan

Apabila melakukan pertanyaan pangkalan data dalam Node.js, adalah perkara biasa untuk menggunakan pertanyaan tak segerak untuk mengelak daripada menyekat acara lain. Walau bagaimanapun, dalam beberapa kes, seperti semasa permulaan, kita perlu melakukan pertanyaan segerak. Artikel ini memperkenalkan cara melakukan pertanyaan segerak dalam Node.js saya harap ia akan membantu anda.

Atas ialah kandungan terperinci Cara melakukan pertanyaan segerak 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