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": "[email protected]"
}
  1. 获取所有用户 :发送一个GET请求到http://localhost:3000/users,你将看到所有用户的列表。
相关推荐
独立开阀者_FwtCoder2 分钟前
最全301/302重定向指南:从SEO到实战,一篇就够了
前端·javascript·vue.js
Moment12 分钟前
给大家推荐一个超好用的 Marsview 低代码平台 🤩🤩🤩
前端·javascript·github
天天摸鱼的java工程师20 分钟前
Redis 集群缓存不一致?这篇把坑给你挖明白了
后端
天天摸鱼的java工程师22 分钟前
Redis 除了做缓存还能干什么?
后端
AntBlack30 分钟前
Trae Agent :能提高开发效率的功能都值亲自体验一下
后端·ai编程·trae
明似水1 小时前
用 Melos 解决 Flutter Monorepo 的依赖冲突:一个真实案例
前端·javascript·flutter
独立开阀者_FwtCoder1 小时前
stagewise:让AI与代码编辑器无缝连接
前端·javascript·github
江城开朗的豌豆1 小时前
JavaScript篇:对象派 vs 过程派:编程江湖的两种武功心法
前端·javascript·面试
菥菥爱嘻嘻1 小时前
JS手写代码篇---手写ajax
开发语言·javascript·ajax
江城开朗的豌豆1 小时前
JavaScript篇:字母侦探:如何快速统计字符串里谁才是'主角'?
前端·javascript·面试