使用 Prisma 在 Express 应用中查询 MySQL、PostgreSQL & SQL Server 数据库数据——Prisma 是一个更好的 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 的全面教程
一个带有 SQLite 数据库的可运行的 REST API 示例项目
一个带有 SQLite 数据库的可运行的 GraphQL API 示例项目
我们提供多个渠道,您可以通过这些渠道与社区成员和 Prisma 团队交流。