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

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.lryc.cn/news/451010.html

相关文章:

  • 每日一题|983. 最低票价|动态规划、记忆化递归
  • oracle 正则 匹配 身份正 手机号
  • 在树莓派上部署开源监控系统 ZoneMinder
  • 2022年6月 Frontier 获得性能第一的论文翻译
  • B2B商城交易解决方案:赋能企业有效重塑采购与销售新生态
  • 初始C语言(五)
  • mysql学习教程,从入门到精通,SQL 修改表(ALTER TABLE 语句)(29)
  • 【网络基础】网络常识快速入门知识清单,看这篇文章就够了
  • OceanBase 关于一号表笔记与ERROR 1060(42S21)问题
  • 【四】Spring Cloud OpenFeign原理分析
  • EDM平台大比拼 用户体验与营销效果双重测评
  • 开卷可扩展自动驾驶(OpenDriveLab)
  • 基于大数据的二手电子产品需求分析及可视化系统
  • SpringBoot——基础配置
  • Android OpenGLES2.0开发(三):绘制一个三角形
  • 数据清洗的重要性与方法
  • AI与大数据的结合:如何从海量数据中提取价值
  • 【漏洞复现】孚盟云oa AjaxSendDingdingMessage接口 存在sql注入漏洞
  • 【VUE】案例:商场会员管理系统
  • IDEA 最新版创建 Sping Boot 项目没有 JDK8 选项的解决方案
  • Unity Asset Store的默认下载位置及更改下载路径的方法
  • ArcEngine实现要素坐标转换:平移、缩放、旋转(批量处理)
  • Redis: 主从复制原理
  • PostgreSQL 向量扩展插件pgvector安装和使用
  • 【论文阅读】基于真实数据感知的模型功能窃取攻击
  • 线程池:线程池的实现 | 日志
  • 海信和TCL雷鸟智能电视的体验
  • 自动化学习3:日志记录及测试报告的生成--自动化框架搭建
  • 【STM32单片机_(HAL库)】4-1【定时器TIM】定时器中断点灯实验
  • Linux编译安装Mysql笔记