Heim > Web-Frontend > Front-End-Fragen und Antworten > So führen Sie synchrone Abfragen in Node.js durch

So führen Sie synchrone Abfragen in Node.js durch

PHPz
Freigeben: 2023-04-07 10:35:01
Original
838 Leute haben es durchsucht

In Node.js sind häufig Datenbankabfragen erforderlich. Das Abfragen der Datenbank ist ein E/A-Vorgang, und asynchrone Aufrufe werden normalerweise verwendet, um das Blockieren anderer Ereignisse zu vermeiden. In einigen Fällen müssen wir jedoch synchrone Abfragen durchführen. In diesem Artikel wird erläutert, wie Sie synchrone Abfragen in Node.js durchführen.

1. Asynchrone Abfrage von Node.js

Normalerweise verwendet Node.js eine asynchrone Abfrage, um das Blockieren anderer Ereignisse zu vermeiden. Beispielsweise können wir den MySQL-Verbindungspool von Node.js verwenden, um eine asynchrone Abfrage auszuführen, wie unten gezeigt:

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);
    });
  });
}
Nach dem Login kopieren

Im obigen Code führt die Funktion asyncQuery eine asynchrone Abfrage aus und leitet die Ergebnisse weiter Die Callback-Funktion kehrt zurück. asyncQuery函数将会执行异步查询,并将结果通过回调函数返回。

二、Node.js同步查询

在某些情况下,我们需要以同步的方式执行SQL查询,例如在初始化时需加载数据库内容。在Node.js中,可以使用sync-mysql模块来实现同步查询。sync-mysql模块将自动为每个查询创建一个新的连接,并延迟关闭连接,以便允许连接复用。以下是一个同步查询的例子:

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);
}
Nach dem Login kopieren

在上面的代码中,我们创建了一个SyncMySQL连接,使用query方法执行查询,并将结果存储在rows变量中。如果发生错误,将会通过catch

2. Synchrone Node.js-Abfrage

In einigen Fällen müssen wir SQL-Abfragen synchron ausführen, z. B. beim Laden von Datenbankinhalten während der Initialisierung. In Node.js können Sie das Modul sync-mysql verwenden, um synchrone Abfragen zu implementieren. Das sync-mysql-Modul erstellt automatisch eine neue Verbindung für jede Abfrage und verzögert das Schließen der Verbindung, um die Wiederverwendung der Verbindung zu ermöglichen. Das Folgende ist ein Beispiel für eine synchrone Abfrage:

rrreee

Im obigen Code erstellen wir eine SyncMySQL-Verbindung, führen die Abfrage mit der Methode query aus und speichern die Ergebnisse in rows Variable. Wenn ein Fehler auftritt, wird der Fehler durch die catch-Anweisung erfasst und die Fehlermeldung ausgegeben.

Es ist zu beachten, dass synchrone Abfragen möglicherweise andere Ereignisse in der Anwendung blockieren. Verwenden Sie daher synchrone Abfragen nur bei Bedarf. Wenn Sie mehrere Abfragen ausführen müssen, ist es besser, asynchrone Aufrufe zu verwenden. 🎜🎜Fazit🎜🎜Bei Datenbankabfragen in Node.js werden häufig asynchrone Abfragen verwendet, um das Blockieren anderer Ereignisse zu vermeiden. In einigen Fällen, beispielsweise während der Initialisierung, müssen wir jedoch synchrone Abfragen durchführen. In diesem Artikel wird erläutert, wie Sie synchrone Abfragen in Node.js durchführen. Ich hoffe, dass er für Sie hilfreich ist. 🎜

Das obige ist der detaillierte Inhalt vonSo führen Sie synchrone Abfragen in Node.js durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage