在 Node.js 开发中,与数据库的交互是非常常见的需求,而 MySQL 作为一款广泛使用的开源关系型数据库,与 Node.js 的结合使用更是十分普遍。本文将详细介绍如何在 Node.js 中连接 MySQL 数据库,并提供相应的演示代码。
在 Node.js 中连接 MySQL 数据库,我们需要使用第三方的 MySQL 驱动。其中,mysql2
是一个比较受欢迎的选择,它在性能上有一定的优势,并且支持异步操作。
首先,确保你已经安装了 Node.js 和 npm(Node 包管理器)。然后,在项目目录下打开终端,执行以下命令来安装 mysql2
:
npm install mysql2
安装好 mysql2
后,我们就可以开始建立与 MySQL 数据库的连接了。以下是一个简单的示例代码:
const mysql = require('mysql2');
// 创建连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
// 获取一个连接
pool.getConnection((err, connection) => {
if (err) {
console.error('Error getting connection:', err);
return;
}
console.log('Connected to the MySQL server.');
// 释放连接
connection.release();
});
mysql2
模块:使用 require('mysql2')
引入 mysql2
模块。mysql.createPool()
方法创建一个连接池,连接池可以提高数据库连接的效率。在创建连接池时,需要配置数据库的相关信息,如主机名、用户名、密码和数据库名等。pool.getConnection()
方法从连接池中获取一个连接。如果获取连接过程中出现错误,会在回调函数中返回错误信息;如果成功获取连接,则会打印连接成功的信息。connection.release()
方法将连接释放回连接池,以便其他请求可以继续使用。连接成功后,我们可以执行各种 SQL 查询。以下是一个查询示例:
const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
// 执行查询
pool.query('SELECT * FROM your_table', (err, results) => {
if (err) {
console.error('Error executing query:', err);
return;
}
console.log('Query results:', results);
});
pool.query()
方法执行 SQL 查询。该方法接受两个参数,第一个参数是 SQL 查询语句,第二个参数是回调函数。err
是否存在来检查查询是否出错。如果查询成功,results
参数将包含查询结果。除了使用回调函数,我们还可以使用 mysql2/promise
模块来实现异步/await 风格的查询,这样可以使代码更加简洁易读。以下是一个示例:
const mysql = require('mysql2/promise');
async function main() {
try {
const pool = mysql.createPool({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
const [rows] = await pool.execute('SELECT * FROM your_table');
console.log('Query results:', rows);
} catch (err) {
console.error('Error:', err);
}
}
main();
mysql2/promise
模块:使用 require('mysql2/promise')
引入支持异步/await 的 mysql2
模块。async/await
语法创建一个异步函数 main()
,在函数内部执行数据库查询。pool.execute()
方法执行 SQL 查询,并使用 await
关键字等待查询结果。操作 | 代码示例 | 说明 |
---|---|---|
安装驱动 | npm install mysql2 |
安装 mysql2 驱动 |
建立连接 | const pool = mysql.createPool({...}); pool.getConnection(...) |
创建连接池并获取连接 |
执行查询(回调风格) | pool.query('SELECT * FROM your_table', (err, results) => {...}) |
使用回调函数执行查询 |
执行查询(异步/await 风格) | const [rows] = await pool.execute('SELECT * FROM your_table'); |
使用异步/await 执行查询 |
通过以上步骤,你可以在 Node.js 中轻松地连接和操作 MySQL 数据库。希望本文对你有所帮助!