在开发Node.js应用时,Express框架因其简洁、灵活而受到许多开发者的喜爱。而MySQL作为一款高性能的数据库,也是众多应用的数据库选择。今天,我们就来聊聊如何使用Express框架连接MySQL,实现数据库的交互。
第一步:初始化Express项目
首先,你需要创建一个新的Node.js项目,并安装Express框架。以下是一个简单的初始化步骤:
# 创建项目目录
mkdir express-mysql
cd express-mysql
# 初始化npm项目
npm init -y
# 安装express框架
npm install express
第二步:安装MySQL驱动
为了连接MySQL数据库,我们需要安装mysql这个npm包。这个包提供了Node.js与MySQL数据库的连接功能。
# 安装mysql驱动
npm install mysql
第三步:创建数据库连接
在项目中创建一个db.js文件,用于封装数据库连接的逻辑。
const mysql = require('mysql');
// 创建数据库连接对象
const connection = mysql.createConnection({
host: 'localhost', // 数据库地址
user: 'root', // 数据库用户名
password: 'root', // 数据库密码
database: 'test' // 数据库名称
});
// 连接数据库
connection.connect(err => {
if (err) {
console.error('连接数据库失败:', err);
return;
}
console.log('数据库连接成功!');
});
module.exports = connection;
第四步:编写数据库操作代码
在Express应用中,我们可以通过封装数据库操作的方法,来方便地执行增删改查等操作。以下是一个简单的示例:
const connection = require('./db');
// 查询数据库
function query(sql, params) {
return new Promise((resolve, reject) => {
connection.query(sql, params, (err, results) => {
if (err) {
reject(err);
} else {
resolve(results);
}
});
});
}
// 增加数据
async function addData(sql, params) {
try {
await query(sql, params);
console.log('数据插入成功!');
} catch (err) {
console.error('数据插入失败:', err);
}
}
// 删除数据
async function deleteData(sql, params) {
try {
await query(sql, params);
console.log('数据删除成功!');
} catch (err) {
console.error('数据删除失败:', err);
}
}
// 修改数据
async function updateData(sql, params) {
try {
await query(sql, params);
console.log('数据更新成功!');
} catch (err) {
console.error('数据更新失败:', err);
}
}
// 查询数据
async function selectData(sql, params) {
try {
const results = await query(sql, params);
console.log('查询结果:', results);
} catch (err) {
console.error('查询失败:', err);
}
}
第五步:在Express路由中使用数据库操作
在Express路由中,我们可以调用前面封装好的数据库操作方法,实现数据的增删改查。
const express = require('express');
const router = express.Router();
const connection = require('./db');
// 增加数据
router.post('/add', (req, res) => {
const sql = 'INSERT INTO users (name, age) VALUES (?, ?)';
const params = [req.body.name, req.body.age];
addData(sql, params).then(() => {
res.send('数据插入成功!');
}).catch(err => {
res.status(500).send('数据插入失败!');
});
});
// 删除数据
router.delete('/delete/:id', (req, res) => {
const sql = 'DELETE FROM users WHERE id = ?';
const params = [req.params.id];
deleteData(sql, params).then(() => {
res.send('数据删除成功!');
}).catch(err => {
res.status(500).send('数据删除失败!');
});
});
// 修改数据
router.put('/update/:id', (req, res) => {
const sql = 'UPDATE users SET name = ?, age = ? WHERE id = ?';
const params = [req.body.name, req.body.age, req.params.id];
updateData(sql, params).then(() => {
res.send('数据更新成功!');
}).catch(err => {
res.status(500).send('数据更新失败!');
});
});
// 查询数据
router.get('/select/:id', (req, res) => {
const sql = 'SELECT * FROM users WHERE id = ?';
const params = [req.params.id];
selectData(sql, params).then(() => {
res.send('查询成功!');
}).catch(err => {
res.status(500).send('查询失败!');
});
});
module.exports = router;
通过以上五个步骤,你就可以轻松地使用Express框架连接MySQL数据库,并实现数据的增删改查操作了。希望这篇文章能对你有所帮助!
