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,你将看到所有用户的列表。
相关推荐
yangminlei6 分钟前
Spring Boot3集成LiteFlow!轻松实现业务流程编排
java·spring boot·后端
计算机毕设VX:Fegn089514 分钟前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
J_liaty15 分钟前
Spring Boot整合Nacos:从入门到精通
java·spring boot·后端·nacos
面汤放盐35 分钟前
后端系统设计文档模板
后端
2***d8851 小时前
SpringBoot 集成 Activiti 7 工作流引擎
java·spring boot·后端
五阿哥永琪1 小时前
Spring中的定时任务怎么用?
java·后端·spring
追逐时光者1 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 65 期(2026年1.1-1.11)
后端·.net
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
gelald2 小时前
AQS 工具之 CountDownLatch 与 CyclicBarry 学习笔记
java·后端·源码阅读
且去填词2 小时前
Go 语言的“反叛”——为什么少即是多?
开发语言·后端·面试·go