【发布时间】:2021-11-30 04:54:34
【问题描述】:
我有一个 Prisma 模型,假设有 10 个字段。 考虑包含名字、姓氏、地址、电子邮件、电话、手机、年龄等的用户模型。
我正在尝试为此编写一个更新方法,大多数时候我只想更新一些或只有一个字段。不是整个用户。如果该字段未随请求一起发送,我想保留数据库中的值。
最好的做法是什么。我应该检查所有字段都在 req 对象中吗? 我怎么能为 prisma 写这个?
我希望它如何工作的示例:
req = {firstname: 'Bob', email: 'bob@bob.bob', etc}
const updateUser = await prisma.user.update({
where: {
email: 'viola@prisma.io',
},
data: {
req.firstname ? (email: req.firstname) : null,
req.email ? (email: req.email) : null,
req.address? (email: req.address) : null,
},
})
或者我应该检查 req 中存在的值并在 10 个版本中构建数据对象:
let customDataObject = {}
if (req.firstname) {
customDataObject.firstname = req.firstname
}
if (req.email) {
customDataObject.email= req.email
}
const updateUser = await prisma.user.update({
where: {
email: 'viola@prisma.io',
},
data: customDataObject,
})
【问题讨论】: