Express + Prisma + MySQL:一站式搭建高效 Node.js 后端服务

环境准备

在开始之前,请确保你已经安装了以下工具:

  1. Node.js :确保你的机器上安装了Node.js,可以通过运行node -v来检查版本。
  2. MySQL:安装MySQL并创建一个数据库。
  3. 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"

请将USERPASSWORDDATABASE_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。

  1. 创建用户 :发送一个POST请求到http://localhost:3000/users,请求体为:
json 复制代码
{
  "name": "John Doe",
  "email": "john@example.com"
}
  1. 获取所有用户 :发送一个GET请求到http://localhost:3000/users,你将看到所有用户的列表。
相关推荐
前端小巷子10 分钟前
Webpack 5模块联邦
前端·javascript·面试
晓得迷路了14 分钟前
栗子前端技术周刊第 91 期 - 新版 React Compiler 文档、2025 HTML 状态调查、Bun v1.2.19...
前端·javascript·react.js
江城开朗的豌豆25 分钟前
前端路由傻傻分不清?route和router的区别,看完这篇别再搞混了!
前端·javascript·vue.js
小鱼人爱编程37 分钟前
Java基石--反射让你直捣黄龙
前端·spring boot·后端
hqxstudying43 分钟前
J2EE模式---服务层模式
java·数据库·后端·spring·oracle·java-ee
GM_8281 小时前
【最新最完整】SpringAI-1.0.0开发MCP Server,搭建MCP Client 实战笔记(进阶+详细+完整代码)
java·后端·ai编程·springai·mcp
程序员爱钓鱼1 小时前
Go语言实战案例-滑动窗口最大值
后端·google·go
Victor3562 小时前
MySQL(163) 如何理解MySQL的隔离级别?
后端
Victor3562 小时前
MySQL(164)如何设置MySQL的隔离级别?
后端
LBJ辉2 小时前
2. Webpack 高级配置
前端·javascript·webpack