一、普通增删改查
前端代码
"use client"
export default function Home() {
// 通过 API 路由进行数据库操作
const addUser = async () => {
const res = await fetch("/api/user", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
action: "add",
data: {
name: "新用户",
email: "newuser@example.com",
password: "123456",
role: "ADMIN"
}
})
});
const result = await res.json();
console.log("新增用户:", result);
};
const deleteUser = async () => {
const res = await fetch("/api/user", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
action: "delete",
id: 1
})
});
const result = await res.json();
console.log("删除用户:", result);
};
const updateUser = async () => {
const res = await fetch("/api/user", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
action: "update",
id: 1,
data: {
name: "修改后的用户"
}
})
});
const result = await res.json();
console.log("修改用户:", result);
};
const queryUser = async () => {
const res = await fetch("/api/user", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
action: "query",
id: 1
})
});
const result = await res.json();
console.log("查询用户:", result);
};
return (
<>
<button onClick={addUser}>增加用户</button> <br />
<button onClick={deleteUser}>删除用户</button><br />
<button onClick={updateUser}>修改用户</button><br />
<button onClick={queryUser}>查询用户</button>
</>
);
}后端代码(基于 Node.js)
import { NextResponse } from "next/server";
import db from "@/app/lib/db";
export async function POST(request: Request) {
const body = await request.json();
const { action, id, data } = body;
let result;
try {
if (action === "add") {
result = await db.user.create({ data });
} else if (action === "delete") {
result = await db.user.delete({ where: { id } });
} else if (action === "update") {
result = await db.user.update({ where: { id }, data });
} else if (action === "query") {
result = await db.user.findFirst({ where: { id } });
} else {
return NextResponse.json({ error: "未知操作" }, { status: 400 });
}
return NextResponse.json({ result });
} catch (e) {
return NextResponse.json({ error: (e instanceof Error ? e.message : String(e)) }, { status: 500 });
}
}二、 事务
// 批量创建用户事务
async function createManyUsers(users: any[]) {
return await db.$transaction(
users.map((userData) => db.user.create({ data: userData }))
);
}
// 或者
// 批量创建用户事务
async function createManyUsers(users: any[]) {
const queries = [];
for (const userData of users) {
queries.push(db.user.create({ data: userData }));
}
return await db.$transaction(queries);
}
注意:此处循环创建仅为举例
评论区