
在 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 数据库。希望本文对你有所帮助!