当前位置: 首页 > 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 语句。

相关文章:

  • MacOS配置python环境
  • Linux安装RabbitMQ安装
  • Ubuntu如何如何安装tcpdump
  • 微信小程序操作蓝牙
  • vue3 环境配置vue-i8n国际化
  • 当人工智能拥抱餐饮业,传统与创新的交融
  • 每天五分钟深度学习pytorch:基于pytorch搭建一元线性回归模型
  • 【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
  • 【AIGC】ChatGPT提示词解析:如何打造个人IP、CSDN爆款技术文案与高效教案设计
  • 【web安全】——sql注入
  • 查缺补漏----该不该考虑不可屏蔽中断
  • TypeScript 算法手册【选择排序】
  • 基于yolov8深度学习的120种犬类检测与识别系统python源码+onnx模型+评估指标曲线+精美GUI界面目标检测狗类检测犬类识别系统
  • 英语音标与重弱读
  • Java后端分布式系统的服务健康检查:Spring Boot Health
  • JavaScript 如何正确处理 Unicode 编码问题!
  • Angularjs之国际化
  • CAP理论的例子讲解
  • HashMap剖析之内部结构
  • JSONP原理
  • mongodb--安装和初步使用教程
  • React Native移动开发实战-3-实现页面间的数据传递
  • React中的“虫洞”——Context
  • session共享问题解决方案
  • Shell编程
  • Vue--数据传输
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • windows下如何用phpstorm同步测试服务器
  • 大快搜索数据爬虫技术实例安装教学篇
  • 开发基于以太坊智能合约的DApp
  • 前端_面试
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 通过git安装npm私有模块
  • 原生 js 实现移动端 Touch 滑动反弹
  • - 转 Ext2.0 form使用实例
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​如何在iOS手机上查看应用日志
  • (1)Android开发优化---------UI优化
  • (Git) gitignore基础使用
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二)PySpark3:SparkSQL编程
  • (理论篇)httpmoudle和httphandler一览
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (七)Flink Watermark
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (算法)硬币问题
  • (转) RFS+AutoItLibrary测试web对话框
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • @Resource和@Autowired的区别
  • @test注解_Spring 自定义注解你了解过吗?
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析