使用 Prisma 从 Express 应用程序中的 MySQL、PostgreSQL 和 SQL Server 数据库查询数据 - 适用于 JavaScript 和 TypeScript 的更好的 ORM。
// Creating a new recordawait prisma.user.create({ firstName: “Alice”, email: “alice@prisma.io”})
id firstName email 1 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'3
4const prisma = new PrismaClient()5const app = express()6
7app.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})14
15app.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})27
28app.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})36
37app.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})46
47const server = app.listen(3000)
Prisma 用于您的路由处理程序中,以便在数据库中读取和写入数据。
1import express from 'express'2import { PrismaClient } from '@prisma/client'3
4const prisma = new PrismaClient()5const app = express()6
7app.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})14
15app.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})27
28app.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})36
37app.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})46
47const server = app.listen(3000)
无论您是构建微服务还是整体应用程序,Prisma 都能完美地融入您的技术栈。
Prisma 为您提供数据库查询的自动完成功能,带来出色的开发者体验和完整的类型安全。
Prisma Client 确保完全类型安全的数据库查询,并提供自动完成功能等优势 - 即使在 JavaScript 中也是如此。
Prisma 的声明式建模语言简单明了,让您直观地描述数据库模式。
从声明式的 Prisma 模式生成可预测且可自定义的 SQL 迁移。
Prisma Client 通过提供针对常见 API 功能(例如分页、过滤器等)的查询来减少样板代码。
使用 Express、Prisma 和 PostgreSQL 构建 REST API 的综合教程
一个用于 REST API 的即用型示例项目,该项目使用 SQLite 数据库
一个用于 GraphQL API 的即用型示例项目,该项目使用 SQLite 数据库
我们有多个渠道,您可以在这些渠道中与社区成员以及 Prisma 团队互动。