使用 Prisma 在 Express 应用程序中查询 MySQL、PostgreSQL 和 SQL Server 数据库 – 适用于 JavaScript 和 TypeScript 的更佳 ORM。
// Creating a new recordawait prisma.user.create({firstName: “Alice”,email: “alice@prisma.io”})
id firstName email1 Bobby bobby@tables.io2 Nilufar nilu@email.com3 Jürgen jums@dums.edu4 Alice alice@prisma.io
Prisma ORM 是一款下一代 ORM,用于在 Express 服务器中查询您的数据库。您可以将其用作编写纯 SQL 查询、像 knex.js 这样的查询构建器或像 TypeORM、MikroORM 和 Sequelize 这样的传统 ORM 的替代方案。
Prisma ORM 可用于构建 REST 和 GraphQL API,并与微服务和单体架构平滑集成。
您还可以使用我们的其他工具增强 Prisma ORM 的使用
• Prisma Accelerate 是一款全局数据库缓存和可扩展连接池,可加速您的数据库查询。
• Prisma Pulse 使您能够以类型安全的方式构建响应式实时应用程序。
Prisma 提供了一个方便的数据库访问层,可与 Express 完美集成。
下面的代码演示了在使用 Express 构建 API 服务器时 Prisma 的各种用法。
Prisma 在您的路由处理程序内部用于读取和写入数据库中的数据。
1import express from 'express'2import { PrismaClient } from '@prisma/client'34const prisma = new PrismaClient()5const app = express()67app.get('/feed', async (req, res) => {8 const posts = await prisma.post.findMany({9 where: { published: true },10 include: { author: true },11 })12 res.json(posts)13})1415app.post('/post', async (req, res) => {16 const { title, content, authorEmail } = req.body17 const post = await prisma.post.create({18 data: {19 title,20 content,21 published: false,22 author: { connect: { email: authorEmail } },23 },24 })25 res.json(post)26})2728app.put('/publish/:id', async (req, res) => {29 const { id } = req.params30 const post = await prisma.post.update({31 where: { id },32 data: { published: true },33 })34 res.json(post)35})3637app.delete('/user/:id', async (req, res) => {38 const { id } = req.params39 const user = await prisma.user.delete({40 where: {41 id,42 },43 })44 res.json(user)45})4647const server = app.listen(3000)
Prisma 在您的路由处理程序内部用于读取和写入数据库中的数据。
1import express from 'express'2import { PrismaClient } from '@prisma/client'34const prisma = new PrismaClient()5const app = express()67app.get('/feed', async (req, res) => {8 const posts = await prisma.post.findMany({9 where: { published: true },10 include: { author: true },11 })12 res.json(posts)13})1415app.post('/post', async (req, res) => {16 const { title, content, authorEmail } = req.body17 const post = await prisma.post.create({18 data: {19 title,20 content,21 published: false,22 author: { connect: { email: authorEmail } },23 },24 })25 res.json(post)26})2728app.put('/publish/:id', async (req, res) => {29 const { id } = req.params30 const post = await prisma.post.update({31 where: { id },32 data: { published: true },33 })34 res.json(post)35})3637app.delete('/user/:id', async (req, res) => {38 const { id } = req.params39 const user = await prisma.user.delete({40 where: {41 id,42 },43 })44 res.json(user)45})4647const server = app.listen(3000)
无论您构建的是微服务还是单体应用,Prisma 都能完美融入您的技术栈。
Prisma 为您提供数据库查询的自动完成、出色的开发者体验和完全的类型安全。
Prisma Client 确保完全类型安全的数据库查询,并具有自动完成等优点 - 即使在 JavaScript 中也是如此。
Prisma 的声明式建模语言简单易用,让您可以直观地描述您的数据库 schema。
从声明式 Prisma schema 生成可预测和可自定义的 SQL 迁移。
Prisma Client 通过为常见的 API 功能(例如,分页、过滤器等)提供查询来减少样板代码。
使用 Express、Prisma 和 PostgreSQL 构建 REST API 的综合教程
一个用于 REST API 的即用型示例项目,带有 SQLite 数据库
一个用于 GraphQL API 的即用型示例项目,带有 SQLite 数据库
我们有多个渠道,您可以在其中与我们的社区成员以及 Prisma 团队互动。