环境准备
在开始之前,请确保你已经安装了以下工具:
- Node.js :确保你的机器上安装了Node.js,可以通过运行
node -v
来检查版本。 - MySQL:安装MySQL并创建一个数据库。
- npm:Node.js自带npm包管理工具。
创建项目
首先,创建一个新的Node.js项目并安装所需的依赖。
bash
mkdir prisma-express-demo && cd $_
npm init -y
npm install express @prisma/client
npm install prisma typescript ts-node @types/node --save-dev
初始化Prisma
接下来,初始化Prisma并配置数据库连接。
bash
npx prisma init
这将创建一个prisma
文件夹和一个schema.prisma
文件。在schema.prisma
中,配置MySQL数据库连接:
ini
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
在项目根目录下创建一个.env
文件,并添加你的MySQL数据库连接字符串:
ini
DATABASE_URL="mysql://USER:PASSWORD@localhost:3306/DATABASE_NAME"
请将USER
、PASSWORD
和DATABASE_NAME
替换为你的MySQL数据库的实际信息。
定义数据模型
在schema.prisma
文件中定义你的数据模型。例如,创建一个简单的用户模型:
kotlin
model User {
id Int @id @default(autoincrement())
name String
email String @unique
}
生成 Prisma Client
bash
npx prisma generate
这条命令会根据 schema.prisma
文件生成 Prisma Client,用于在代码中操作数据库。
创建数据库迁移
bash
npx prisma migrate dev --name init
这条命令会创建一个数据库迁移脚本,并将其应用到数据库中。
后续如果需要修改修改表格结构,按如下操作步骤进行
添加/删除字段
kotlin
model User {
id Int @id @default(autoincrement())
name String
email String @unique
createAt DateTime @default(now()) // 添加一个创建时间字段,默认数据为创建的当前时间
}
执行如下命令
bash
npx prisma generate
npx prisma migrate dev --name init
创建Express应用
在项目根目录下创建一个index.js
文件,并设置基本的Express服务器:
javascript
const express = require('express');
const { PrismaClient } = require('@prisma/client');
const app = express();
const prisma = new PrismaClient();
app.use(express.json());
// 创建用户
app.post('/users', async (req, res) => {
const { name, email } = req.body;
const user = await prisma.user.create({
data: { name, email },
});
res.json(user);
});
// 获取所有用户
app.get('/users', async (req, res) => {
const users = await prisma.user.findMany();
res.json(users);
});
// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
测试API
现在,你可以使用Postman或任何其他API测试工具来测试你的API。
- 创建用户 :发送一个POST请求到
http://localhost:3000/users
,请求体为:
json
{
"name": "John Doe",
"email": "[email protected]"
}
- 获取所有用户 :发送一个GET请求到
http://localhost:3000/users
,你将看到所有用户的列表。