nodejs连接mysql

简介: 创建config文件夹存放配置,实现解耦。通过.env文件管理数据库连接信息,db.js使用mysql2和dotenv创建连接池并测试连通性,确保应用稳定连接数据库。

新建文件夹config,后续存放所有配置文件

在工程目录下用于存储数据库配置信息:.env。单独定义一个文件的目的也是为了解耦合。

.env 文件

DB_HOST=localhost
DB_PORT=3306
DB_USER=root # 你的 MySQL 用户名
DB_PASSWORD=123456 # 你的 MySQL 密码
DB_NAME=weapon_skins_db # 目标数据库名

config文件夹下新建连接数据库的配置文件:db.js

// config/db.js
const mysql = require('mysql2/promise');
require('dotenv').config(); // 加载环境变量,固定写法,会读取项目根目录下的.env文件

// 从环境变量读取配置
const dbConfig = {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
charset: 'utf8mb4',
};

// 创建连接池
const pool = mysql.createPool(dbConfig);

// 测试连接池是否可用
async function testPoolConnection() {
try {
const connection = await pool.getConnection();
console.log('✅ 数据库连接池创建成功!');
connection.release(); // 释放连接(归还到连接池)
} catch (error) {
console.error('❌ 数据库连接池创建失败:', error.message);
process.exit(1); // 连接失败则退出程序
}
}

// 暴露连接池和测试函数
module.exports = {
pool,
testPoolConnection
};

相关文章
|
11月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
856 1
|
移动开发 小程序
小程序-uniapp:URL Link / 适用于在移动端 从短信、邮件、微信外网页 等场景打开小程序任意页面
小程序-uniapp:URL Link / 适用于在移动端 从短信、邮件、微信外网页 等场景打开小程序任意页面
1981 0
|
存储 网络安全 数据安全/隐私保护
Docker harbor私有仓库部署与管理-2
Docker harbor私有仓库部署与管理
747 0
|
5月前
|
弹性计算 运维 安全
阿里云轻量应用服务器和ECS区别对比,不知道怎么选择?看这篇就够了
阿里云ECS是企业级弹性计算服务,功能全、弹性强,适合高并发、大数据等复杂场景,ECS官网:https://t.aliyun.com/U/AZBUsA 轻量应用服务器则主打简单易用、一键部署、高性价比,专为个人博客、学习测试等轻量场景设计。
423 3
|
7月前
|
存储 弹性计算 运维
2026年阿里云ECS云服务器部署OpenClaw(Clawdbot)+配置百炼 API 步骤流程
OpenClaw(原Clawdbot/Moltbot)作为阿里云生态下的开源AI自动化代理工具,凭借自然语言交互、全场景任务自动化、插件化扩展的核心能力,已成为个人办公提效、企业轻量化数字化转型的核心工具。2026年阿里云ECS云服务器针对OpenClaw推出“一键部署”方案,将原本需要手动配置环境、安装依赖、调试参数的复杂流程,简化为可视化表单配置+自动化执行,即使是零基础的技术新手,也能在10分钟内完成从ECS实例创建到OpenClaw服务可用的全流程。本文将详细拆解阿里云ECS云服务器一键部署OpenClaw的完整步骤,包含配置要点、代码命令、功能验证与运维技巧,覆盖从新手入门到企业级应
734 9
|
11月前
|
JavaScript 前端开发
uni-app中如何使用scss定义变量
使用SCSS在uni-app项目中定义和使用变量,不仅提高了样式代码的可维护性,还使得样式的修改和主题定制变得更加方便。只需更改变量值,就可以轻松改变整个应用的外观和风格。通过合理地组织和管理SCSS代码,可以大大提高开发效率和项目的可维护性。
836 9
|
固态存储 测试技术 iOS开发
硬盘检测工具哪个最好用?这8款值得收藏
硬盘健康状况直接影响电脑性能,选择合适的检测工具至关重要。本文推荐8款实用硬盘检测工具:Windows CHKDSK、DiskGenius免费版、Victoria、HDDScan、SeaTools、AIDA64、HD Tune Pro及Mac磁盘工具。这些工具功能全面,操作简单,涵盖S.M.A.R.T信息查看、坏道检测与修复、性能测试等,满足不同用户需求。无论是Windows还是macOS用户,均可找到适合的工具维护硬盘健康。
|
人工智能 自动驾驶 算法
人工智能引发的新文明冲击:未来十年消失的职业!
在21世纪科技浪潮中,人工智能(AI)正以前所未有的速度改变生活方式和工作模式。未来十年内,预计30种传统职业如流水线工人、仓库拣货员、收银员等将逐渐消失,带来前所未有的挑战与机遇。本文探讨这一趋势,分析受影响的职业,并讨论人类如何在AI时代找到新定位。通过GAI认证提升技能,把握AI时代的机遇,共创辉煌未来。
|
安全 Java 测试技术
单元测试一篇汇总
本文详细介绍了软件开发中的单元测试,包括其重要性和好处。单元测试主要用于确保程序模块代码的正确性,常使用的测试框架有JUnit和TestNG。文章重点讲解了JUnit框架,包括其注解、断言方法及JUnit 3.x和4.x的区别。此外,还列举了八大常用的单元测试框架,如Arquillian、JTest、The Grinder、TestNG、JUnit、JWalk、Mockito和PowerMock,帮助读者更好地理解和应用单元测试。
单元测试一篇汇总
|
弹性计算 网络协议 安全
如何使用阿里云虚拟主机和域名设置网站?
如何使用阿里云虚拟主机和域名设置网站?