当前位置: 首页 > article >正文

expressjs 中的mysql.createConnection,execute 怎么使用

在 Express.js 应用中使用 MySQL 数据库,你通常会使用 mysqlmysql2 这样的库来创建和管理数据库连接,并执行查询。然而,mysql.createConnection 并不直接提供 execute 方法。相反,你可以使用 query 方法来执行 SQL 语句。

以下是一个使用 mysql2 库(它是 mysql 库的一个流行替代品,支持 Promises 和 async/await)的示例,展示了如何在 Express.js 应用中连接 MySQL 数据库并执行查询。

1. 安装依赖

首先,你需要安装 expressmysql2 库。

npm install express mysql2

2. 创建 Express 应用并连接 MySQL

以下是一个简单的示例,展示了如何设置 Express 应用,连接到 MySQL 数据库,并执行一个简单的查询。

const express = require('express');
const mysql = require('mysql2/promise');

const app = express();
const port = 3000;

// 数据库配置
const dbConfig = {
  host: 'localhost',
  user: 'your_username',
  password: 'your_password',
  database: 'your_database'
};

// 创建一个数据库连接池
let pool;

(async () => {
  pool = await mysql.createPool(dbConfig);
  app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}/`);
  });
})();

// 定义一个路由来执行查询
app.get('/data', async (req, res) => {
  try {
    const connection = await pool.getConnection();
    const [rows, fields] = await connection.execute('SELECT * FROM your_table');
    connection.release();
    res.json(rows);
  } catch (error) {
    console.error('Error executing query:', error);
    res.status(500).json({ error: 'Failed to fetch data' });
  }
});

// 处理未捕获的异常
process.on('uncaughtException', (err) => {
  console.error('Uncaught Exception:', err);
  process.exit(1);
});

process.on('unhandledRejection', (reason, promise) => {
  console.error('Unhandled Rejection at:', promise, 'reason:', reason);
  process.exit(1);
});

注意事项

  1. 配置数据库连接:确保你已经正确配置了数据库连接参数(host, user, password, database)。
  2. 使用连接池:在这个示例中,我们使用连接池来管理数据库连接。连接池可以显著提高性能和可靠性。
  3. 错误处理:示例中包含了基本的错误处理逻辑。在生产环境中,你可能需要更详细的日志记录和错误处理。
  4. 安全性:不要将数据库凭据硬编码在代码中。考虑使用环境变量或配置文件来管理敏感信息。
  5. 关闭连接:虽然在这个示例中使用了连接池,但在不使用连接池的情况下,记得在查询完成后关闭数据库连接。

使用 query 方法(替代 execute

虽然 mysql2 提供了 execute 方法来执行带有参数的查询,但你也可以使用更通用的 query 方法。以下是一个使用 query 方法的示例:

app.get('/data', async (req, res) => {
  try {
    const connection = await pool.getConnection();
    const [rows, fields] = await connection.query('SELECT * FROM your_table');
    connection.release();
    res.json(rows);
  } catch (error) {
    console.error('Error executing query:', error);
    res.status(500).json({ error: 'Failed to fetch data' });
  }
});

在这个例子中,query 方法被用来执行相同的 SQL 查询。query 方法更通用,适用于所有类型的 SQL 语句。


http://www.kler.cn/news/337728.html

相关文章:

  • MATLAB与R语言在建模中的合作与应用(下篇)
  • OpenAI在周四推出了一种与ChatGPT互动的新方式——一种名为“Canvas”的界面
  • Go编译为可执行文件
  • 22.第二阶段x86游戏实战2-背包遍历REP指令详解
  • php反序列化逃逸例题两道
  • 【Linux】wsl虚拟机时间和实际时间不符合
  • 基于SpringBoot的诗词学习网站的设计与实现
  • 二分查找算法专题(1)
  • 角色动画——RootMotion全解
  • Ubuntu18.04配置OpenPCDet并运行demo过程记录
  • SkyWalking 集成日志框架
  • github——指标统计
  • 刷题 二叉树
  • Liunx各系统中间件查询脚本
  • 大厂面试真题-说说synchronized的锁升级过程
  • leetcode 刷题day36动态规划Part05 背包问题(完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ、70. 爬楼梯 (进阶))
  • typescript使用webpack打包编译问题
  • 35.搜索插入位置
  • MATLAB工具库:数据统计分析工具MvCAT、MhAST等
  • 1.4TB! 全台湾2024年三维建筑模型3DTiles数据