Express 如何连接 MySQL 数据库

364 阅读1分钟

在 Web 开发中,使用 MySQL 数据库是非常常见的。Express 是一个流行的 Node.js Web 框架,它提供了简单且灵活的方式来构建 Web 应用程序。本文将介绍如何在 Express 中连接 MySQL 数据库,并进行一些基本的数据库操作。

步骤一:安装 MySQL 模块

npm install mysql2

步骤二:封装

在根目录下创建config文件夹,

config
 --config.json
 --dbconfig.js

其中config.json为数据库配置文件dbconfig.js为封装mysql文件

config.json

{  
    "host": "localhost", 
    "user": "admin", 
    "password": "admin123", 
    "port": 3306,
    "database": "db",
    "waitForConnections": true,
    "connectionLimit": 10,
    "queueLimit": 0
}

dbconfig.js

const mysql = require('mysql2'); // 导入 mysql2 包
const config = require('./config.json'); // 导入数据库连接配置信息


// 创建数据库连接池
let pool = mysql.createPool({  
    host: config.host, // 数据库主机名  
    user: config.user, // 数据库用户名  
    port: config.port, // 数据库端口号  
    password: config.password, // 数据库密码  
    database: config.database, // 数据库名  
    waitForConnections: config.waitForConnections, // 等待连接的最大数量  
    connectionLimit: config.connectionLimit, // 连接池最大连接数量  
    queueLimit: config.queueLimit // 队列最大数量
});

// 获取数据库连接的函数
let connect = () => {  
    return new Promise((resolve, reject) => {    
        pool.getConnection((err, connection) => {      
            // 从连接池中获取连接      
            !err ? resolve(connection) : reject(err);      // 若成功获取连接,返回连接对象,否则返回错误    
        });  
    });
};


 // 需要传入sql语句和参数
const query = (sql, params) => {  
    return new Promise(async (resolve, reject) => {    
        let connection = await connect(); // 获取数据库连接    
        connection.query(sql, params, (err, results, fields) => {      
            // 执行 SQL 查询语句      
            !err ? resolve(results) : reject(err); // 若查询成功,返回查询结果,否则返回错误     
             connection.release(); // 释放连接    
        });  
    });
};


// 导出 connect 和 query 函数
module.exports = { connect, query };

使用

const db = require('../../config/dbconfig'); //引入数据库封装模块

// 无参数
const sql = `SELECT COUNT(*) AS stu_data_num FROM db_student;`;
const data_num = await db.query(sql, '');

// 有参数
const sql = `SELECT * FROM db_admin WHERE username = ? AND password = ?`;
const data = await db.query(sql, [username, password]);

ok,这样就可以操作数据库了