In Node.js, database queries are often required. Querying the database is an I/O operation, and asynchronous calls are usually used to avoid blocking other events. However, in some cases we need to do synchronous queries. This article will introduce how to perform synchronous queries in Node.js.
1. Node.js asynchronous query
Normally, Node.js uses asynchronous query to avoid blocking other events. For example, we can use the mysql connection pool of Node.js to execute an asynchronous query, as shown below:
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); }); }); }
In the above code, the asyncQuery
function will execute an asynchronous query and The result is returned through the callback function.
2. Node.js synchronous query
In some cases, we need to execute SQL queries in a synchronous manner, such as loading database content during initialization. In Node.js, you can use the sync-mysql
module to implement synchronous queries. sync-mysql
The module will automatically create a new connection for each query and delay closing the connection to allow connection reuse. The following is an example of a synchronous query:
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); }
In the above code, we create a SyncMySQL
connection, use the query
method to execute the query, and store the results In the rows
variable. If an error occurs, the error will be captured through the catch
statement and the error message will be output.
It should be noted that synchronous queries may block other events in the application, so use synchronous queries only when necessary. If you need to execute multiple queries, it's better to use asynchronous calls.
Conclusion
When doing database queries in Node.js, it is common to use asynchronous queries to avoid blocking other events. However, in some cases, such as during initialization, we need to do synchronous queries. This article introduces how to perform synchronous queries in Node.js. I hope it will be helpful to you.
The above is the detailed content of How to do synchronous queries in Node.js. For more information, please follow other related articles on the PHP Chinese website!