Dans Node.js, des requêtes de base de données sont souvent requises. L'interrogation de la base de données est une opération d'E/S et les appels asynchrones sont généralement utilisés pour éviter de bloquer d'autres événements. Cependant, dans certains cas, nous devons effectuer des requêtes synchrones. Cet article explique comment effectuer des requêtes synchrones dans Node.js.
1. Requête asynchrone Node.js
Normalement, Node.js utilise une requête asynchrone pour éviter de bloquer d'autres événements. Par exemple, nous pouvons utiliser le pool de connexions mysql de Node.js pour exécuter des requêtes asynchrones, comme indiqué ci-dessous :
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); }); }); }
Dans le code ci-dessus, la fonction asyncQuery
exécutera une requête asynchrone et transmettra les résultats via le la fonction de rappel revient. 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); }
在上面的代码中,我们创建了一个SyncMySQL
连接,使用query
方法执行查询,并将结果存储在rows
变量中。如果发生错误,将会通过catch
sync-mysql
pour implémenter des requêtes synchrones. Le module sync-mysql
créera automatiquement une nouvelle connexion pour chaque requête et retardera la fermeture de la connexion pour permettre la réutilisation de la connexion. Voici un exemple de requête synchrone : rrreee
Dans le code ci-dessus, nous créons une connexionSyncMySQL
, exécutons la requête à l'aide de la méthode query
et stockons les résultats. dans la variable lignes. Si une erreur se produit, l'erreur sera capturée via l'instruction catch
et le message d'erreur sera affiché. Il convient de noter que les requêtes synchrones peuvent bloquer d'autres événements dans l'application, utilisez donc des requêtes synchrones uniquement lorsque cela est nécessaire. Si vous devez exécuter plusieurs requêtes, il est préférable d'utiliser des appels asynchrones. 🎜🎜Conclusion🎜🎜Lorsque vous effectuez des requêtes de base de données dans Node.js, il est courant d'utiliser des requêtes asynchrones pour éviter de bloquer d'autres événements. Cependant, dans certains cas, comme lors de l'initialisation, nous devons effectuer des requêtes synchrones. Cet article explique comment effectuer des requêtes synchrones dans Node.js. J'espère qu'il vous sera utile. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!