在数字化时代,数据库操作是后端开发中不可或缺的一部分。Node.js以其高效、轻量级的特点,加上Express框架的便捷,成为了构建服务器端应用程序的热门选择。而MySQL作为一种流行的关系型数据库,常常与Node.js和Express结合使用。本文将带你一步步掌握如何使用Node.js和Express连接MySQL,并实现基本的数据库操作。
环境准备
在开始之前,请确保你已经安装了以下环境:
npm install express
创建项目
首先,创建一个新的Node.js项目,并在其中创建一个名为app.js的文件。
mkdir nodejs-express-mysql
cd nodejs-express-mysql
npm init -y
连接MySQL
为了连接MySQL数据库,我们将使用mysql模块。首先,你需要安装这个模块。
npm install mysql
然后,在app.js中,设置数据库连接:
const mysql = require('mysql');
// 创建连接池
const pool = mysql.createPool({
connectionLimit: 10,
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
// 连接池连接事件
pool.on('connection', (connection) => {
console.log('连接成功!');
});
// 连接池连接错误事件
pool.on('error', (err) => {
console.error('连接池发生错误:', err);
});
替换your_username、your_password和your_database为你的MySQL用户名、密码和数据库名。
创建Express应用
接下来,设置Express应用的基础结构:
const express = require('express');
const app = express();
// 使用body-parser中间件解析JSON格式的请求体
const bodyParser = require('body-parser');
app.use(bodyParser.json());
// 设置端口号
const PORT = 3000;
// 启动服务器
app.listen(PORT, () => {
console.log(`服务器正在运行在 http://localhost:${PORT}`);
});
实现数据库操作
现在,我们可以编写一些基本的数据库操作,比如查询、插入、更新和删除数据。
查询数据
app.get('/data', (req, res) => {
pool.query('SELECT * FROM your_table', (err, results) => {
if (err) {
return res.status(500).json({ error: '查询失败' });
}
res.json(results);
});
});
插入数据
app.post('/data', (req, res) => {
const { name, value } = req.body;
const query = 'INSERT INTO your_table (name, value) VALUES (?, ?)';
pool.query(query, [name, value], (err, results) => {
if (err) {
return res.status(500).json({ error: '插入失败' });
}
res.json({ id: results.insertId });
});
});
更新数据
app.put('/data/:id', (req, res) => {
const { id } = req.params;
const { name, value } = req.body;
const query = 'UPDATE your_table SET name = ?, value = ? WHERE id = ?';
pool.query(query, [name, value, id], (err, results) => {
if (err) {
return res.status(500).json({ error: '更新失败' });
}
res.json({ id });
});
});
删除数据
app.delete('/data/:id', (req, res) => {
const { id } = req.params;
const query = 'DELETE FROM your_table WHERE id = ?';
pool.query(query, [id], (err, results) => {
if (err) {
return res.status(500).json({ error: '删除失败' });
}
res.json({ id });
});
});
总结
通过以上步骤,你已经学会了如何使用Node.js和Express连接MySQL,并实现了基本的数据库操作。这是一个非常实用的技能,可以帮助你快速搭建后端服务器和数据库交互的接口。随着项目的深入,你还可以学习更高级的数据库操作和性能优化技巧。祝你编程愉快!
