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,你将看到所有用户的列表。
相关推荐
一只小小Java8 分钟前
Naocs本地部署&安装3.2.3+Spring boot 3.2.0
java·spring boot·后端·nacos
码兄科技8 小时前
实战:基于Spring Boot + UniApp的地理信息小程序开发
spring boot·后端·uni-app
shawxlee10 小时前
vue3在public下封装config.js自定义配置动态数据,可在打包后直接修改,方便后端部署及后续维护
前端·javascript·经验分享·vue·团队开发·js·项目优化
腾讯云云开发10 小时前
腾讯云 CloudBase 登上 WAIC:我们为 Agent 重新设计了云的生产线
后端
星栈10 小时前
从装一堆工具到看懂 Node 工程化思维:我的项目复盘记录
后端·node.js
65岁退休Coder10 小时前
LangChain v1.3.4 笔记 - 05 Agent 上下文记忆
后端
kyriewen10 小时前
我给前端项目的接口请求套了6层保护——才发现以前一直在裸奔
前端·javascript·面试
颜酱11 小时前
04 | 召回前置准备:搭好召回所需的四个数据库
前端·人工智能·后端
JaneConan11 小时前
鸿蒙 韶非 UI 系列:能力调用 startAbilityForResult,跳能力拿回参,鸿蒙能力路由入门
后端·harmonyos
晴空了无痕11 小时前
从 Go 基础到 K8s:一条可落地的 Go 服务端成长路线
开发语言·后端·golang·kubernetes