我不熟悉与 Prisma 合作。我不清楚的一个方面是检查用户是否对对象具有权限的正确方法。假设我们有Book
和Author
模型。每本书都有一个作者(一对多)。只有作者有权删除图书。
执行此操作的一种简单方法是:
prismaClient.book.deleteMany({
id: bookId, <-- id is known
author: {
id: userId <-- id is known
}
})
但是这种方式很难向UnauthorizedError
用户展示。相反,响应将是一个500
状态码,因为我们无法知道查询失败的确切原因。
另一种方法是先查询图书并检查图书实例的作者,这将导致再查询一次。
在 Prisma 中是否有最佳实践?