Node.js连接MySQL需配置连接参数并使用mysql2模块,通过Express创建REST API实现前后端通信。1. 安装MySQL和Node.js依赖,初始化项目并安装mysql2;2. 创建db.js文件建立数据库连接;3. 在Express路由中查询数据并返回JSON;4. 前端用fetch请求接口,渲染数据;5. 使用cors中间件解决跨域;6. 实现注册功能:前端提交表单,后端插入数据到MySQL;7. 推荐使用环境变量存储密码,生产环境启用连接池提升性能。全流程为:前端请求→后端查库→返回数据→前端渲染。

Node.js连接MySQL数据库是全栈开发中的常见需求。前端JavaScript负责页面交互,后端Node.js通过连接MySQL实现数据持久化存储。下面详细介绍如何使用Node.js连接MySQL,并与前端JS整合,完成一个简单的全栈应用。
安装MySQL和Node.js依赖
确保本地已安装MySQL服务并启动。可以通过命令行或可视化工具(如MySQL Workbench)确认数据库正常运行。
在项目目录下初始化Node.js项目:
npm init -y安装MySQL驱动包:
npm install mysql2若需支持Promise语法(推荐),可同时安装并使用mysql2/promise模块。
Node.js连接MySQL并查询数据
创建一个db.js文件用于管理数据库连接:
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'your_password',
database: 'test_db'
});
connection.connect((err) => {
if (err) throw err;
console.log('MySQL数据库连接成功');
});
module.exports = connection;
在路由文件中使用该连接查询数据,例如获取用户列表:
const express = require('express');const connection = require('./db');
const app = express();
app.get('/users', (req, res) => {
connection.query('SELECT * FROM users', (err, results) => {
if (err) throw err;
res.json(results);
});
});
app.listen(3000, () => {
console.log('服务器运行在 http://localhost:3000');
});
前端JS请求后端接口获取数据
在HTML页面中使用原生JavaScript或框架(如Vue、React)调用后端API:
fetch('http://localhost:3000/users').then(response => response.json())
.then(data => {
console.log(data); // 显示用户数据
data.forEach(user => {
document.body.innerHTML += `
${user.name}
`;});
})
.catch(err => console.error('请求失败:', err));
注意:需处理跨域问题。可在Express中使用cors中间件:
const cors = require('cors');
app.use(cors()); // 允许所有来源访问
整合前后端实现完整流程
一个典型的全栈流程包括:前端发送请求 → 后端接收并查询MySQL → 返回JSON数据 → 前端渲染页面。
示例场景:用户注册功能
- 前端表单提交用户名和邮箱
- Node.js接收POST请求,使用
body-parser解析数据 - 插入数据到MySQL的
users表 - 返回成功状态,前端提示“注册成功”
插入语句示例:
app.post('/register', (req, res) => {const { name, email } = req.body;
connection.execute(
"INSERT INTO users (name, email) VALUES (?, ?)",
[name, email],
(err, result) => {
if (err) throw err;
res.send('注册成功');
}
);
});
基本上就这些。Node.js连接MySQL并不复杂,关键是配置好连接参数、处理异步操作、确保前后端通信顺畅。配合Express搭建REST API,再由前端JavaScript调用,即可实现动态网页应用。安全方面建议使用环境变量管理数据库密码,生产环境中启用连接池提升性能。










