在 Node.js 中,你可以使用 MySQL 数据库的驱动程序来连接和操作 MySQL 数据库。最常用的 MySQL 驱动程序之一是 mysql2。以下是使用 mysql2 连接和执行查询的基本示例:

1. 安装 mysql2 驱动程序:

   在你的 Node.js 项目中安装 mysql2 驱动程序:
   npm install mysql2

2. 连接到 MySQL 数据库:
   const mysql = require('mysql2');

   // 创建数据库连接
   const connection = mysql.createConnection({
     host: 'your-database-host',
     user: 'your-username',
     password: 'your-password',
     database: 'your-database-name'
   });

   // 连接到数据库
   connection.connect((err) => {
     if (err) {
       console.error('Error connecting to MySQL:', err);
       return;
     }
     console.log('Connected to MySQL database');
   });

   请将上述代码中的 your-database-host、your-username、your-password 和 your-database-name 替换为你的 MySQL 数据库的实际信息。

3. 执行 SQL 查询:
   // 查询示例:选择所有用户
   connection.query('SELECT * FROM users', (err, results, fields) => {
     if (err) {
       console.error('Error executing query:', err);
       return;
     }

     // 处理查询结果
     console.log('Query results:', results);
   });

   // 关闭数据库连接
   connection.end();

   在实际应用中,你可能会执行更复杂的查询,包括参数化查询、插入、更新等。

4. 使用连接池:

   对于生产环境,建议使用连接池来管理数据库连接,以提高性能和效率。以下是使用连接池的示例:
   const mysql = require('mysql2');

   // 创建数据库连接池
   const pool = mysql.createPool({
     connectionLimit: 10, // 限制连接数
     host: 'your-database-host',
     user: 'your-username',
     password: 'your-password',
     database: 'your-database-name'
   });

   // 从连接池中获取连接
   pool.getConnection((err, connection) => {
     if (err) {
       console.error('Error getting connection from pool:', err);
       return;
     }

     // 执行查询等操作
     connection.query('SELECT * FROM users', (queryErr, results, fields) => {
       if (queryErr) {
         console.error('Error executing query:', queryErr);
         return;
       }

       // 处理查询结果
       console.log('Query results:', results);

       // 释放连接回连接池
       connection.release();
     });
   });

   使用连接池可以更好地管理数据库连接,避免每次查询都手动创建和关闭连接。

这是一个基本的使用 MySQL 数据库的示例。在实际应用中,你可能需要更多的错误处理、参数化查询、事务处理等。确保根据项目的需求使用适当的安全措施,比如防止 SQL 注入攻击。


转载请注明出处:http://www.pingtaimeng.com/article/detail/13174/Node.js