Koa2 连接 MySQL 数据库
要在 Koa2 中实现 MySQL 数据库的增删改查操作,需要通过适当的 MySQL 驱动程序(如 mysql
)与 Koa 结合使用。以下是一个简单的示例,展示如何在 Koa2 中连接 MySQL 数据库并实现增删改查操作:
1. 安装 MySQL 模块
- 在项目目录下运行以下命令安装
mysql
模块:
bash
npm install mysql --save
- 在项目目录下运行以下命令安装
koa-bodyparser
模块:
bash
npm install koa-bodyparser --save
使用 koa-bodyparser 中间件后,当客户端发送 POST 或 PUT 请求时,其中包含表单数据或 JSON 数据时,koa-bodyparser 将自动解析请求体,并将解析后的数据存储在 ctx.request.body 中,以便后续处理。
2. 编写数据库配置
- 创建一个
utils/db.js
文件,并编写数据库连接的相关配置信息:
js
const mysql = require("mysql");
const pool = mysql.createPool({
host: "localhost",
user: "your_username",
password: "your_password",
database: "your_database",
});
function query(sql, values) {
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
if (err) {
reject(err);
} else {
connection.query(sql, values, (error, results, fields) => {
connection.release();
if (error) {
reject(error);
} else {
resolve(results);
}
});
}
});
});
}
module.exports = {
query,
};
3. 编写 Koa 路由处理
- 创建一个
router/index.js
文件,编写 Koa2 的路由处理函数,实现增删改查操作 - 如果你已经做了路由拆分, 可以在
router/users.js
中编写路由处理函数
js
const Router = require("koa-router");
const db = require("./../utils/db");
const router = new Router();
// 查询数据
router.get("/users", async (ctx) => {
const [rows] = await db.query("SELECT * FROM users");
ctx.body = rows;
});
// 新增数据
router.post("/users", async (ctx) => {
const { name, email } = ctx.request.body;
await db.query("INSERT INTO users (name, email) VALUES (?, ?)", [
name,
email,
]);
ctx.body = "User added successfully";
});
// 更新数据
router.put("/users/:id", async (ctx) => {
const { name, email } = ctx.request.body;
const { id } = ctx.params;
await db.query("UPDATE users SET name = ?, email = ? WHERE id = ?", [
name,
email,
id,
]);
ctx.body = "User updated successfully";
});
// 删除数据
router.delete("/users/:id", async (ctx) => {
const { id } = ctx.params;
await db.query("DELETE FROM users WHERE id = ?", [id]);
ctx.body = "User deleted successfully";
});
module.exports = router;
sql
-- 创建 users 表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255)
);
-- 查看表描述
DESC users;
-- 或者
DESCRIBE users;
4. 创建 Koa 应用
- 编写一个
app.js
文件,创建 Koa2 应用,并将数据库路由挂载到应用上:
js
const Koa = require("koa");
const bodyParser = require("koa-bodyparser");
const router = require("./router");
const app = new Koa();
app.use(bodyParser());
app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000, () => {
console.log("Server is running on http://localhost:3000");
});
5. 运行应用
- 在命令行中运行以下命令启动 Koa2 应用:
bash
node app.js
通过上述步骤,您可以在 Koa2 中实现 MySQL 数据库的增删改查操作。请确保您的数据库和表已经设置好,可以根据实际需求修改代码中的 SQL 查询语句。