📅  最后修改于: 2023-12-03 14:59:24.841000             🧑  作者: Mango
The async/await
feature is a recent addition to JavaScript that simplifies asynchronous programming. It allows developers to write asynchronous code that looks and feels like synchronous code, making it easier to read and debug. In this article, we will explore how to use async/await
in Node.js with MySQL.
Before we start, you should have a basic understanding of Node.js and MySQL. You also need to have the following software installed on your computer:
To get started, we need to install the mysql2
package, which is a fast and reliable MySQL driver for Node.js. We can install it using npm
:
npm install --save mysql2
Next, we need to create a new JavaScript file and require the mysql2
package:
const mysql = require('mysql2/promise');
To connect to MySQL, we need to create a connection pool:
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
In the above code, we are creating a connection pool with a maximum of 10 connections. We are also setting the waitForConnections
option to true
, which means that if there are no available connections in the pool, the connection request will be queued until a connection becomes available. Finally, we are setting the queueLimit
option to 0
, which means that there is no limit to the number of queued connection requests.
async/await
Now that we have created the connection pool, we can use async/await
to perform database queries. Here's an example:
async function getUsers() {
try {
const connection = await pool.getConnection();
const [rows, fields] = await connection.execute('SELECT * FROM users');
connection.release();
return rows;
} catch (error) {
throw new Error(`Failed to perform query: ${error}`);
}
}
getUsers()
.then((rows) => console.log(rows))
.catch((error) => console.error(error));
In the above code, we are using async/await
to perform a database query to retrieve all the users from the users
table. We first acquire a connection from the connection pool using pool.getConnection()
. We then use the connection to execute the query using connection.execute()
. The result of the query is stored in the rows
variable. Finally, we release the connection back to the connection pool using connection.release()
. If an error occurs, we throw an exception using throw new Error()
.
In this article, we have explored how to use async/await
in Node.js with MySQL. We have learned how to connect to MySQL using a connection pool and how to use async/await
to perform database queries. With async/await
, we can write cleaner and more maintainable asynchronous code.