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,你将看到所有用户的列表。
相关推荐
⑩-3 小时前
SpringCloud-Sleuth链路追踪实战
后端·spring·spring cloud
冷崖3 小时前
原子锁操作
c++·后端
moxiaoran57533 小时前
Spring AOP开发的使用场景
java·后端·spring
一线大码7 小时前
Gradle 基础篇之基础知识的介绍和使用
后端·gradle
Java猿_7 小时前
Spring Boot 集成 Sa-Token 实现登录认证与 RBAC 权限控制(实战)
android·spring boot·后端
小王师傅667 小时前
【轻松入门SpringBoot】actuator健康检查(上)
java·spring boot·后端
码事漫谈8 小时前
C++高并发编程核心技能解析
后端
码事漫谈8 小时前
C++与浏览器交织-从Chrome插件到WebAssembly,开启性能之门
后端
D_C_tyu8 小时前
Vue3 + Element Plus | el-table 表格获取排序后的数据
javascript·vue.js·elementui
源代码•宸9 小时前
goframe框架签到系统项目(BITFIELD 命令详解、Redis Key 设计、goframe 框架教程、安装MySQL)
开发语言·数据库·经验分享·redis·后端·mysql·golang