[英]How can I update an already stored boolean value in prisma with mongoDB?
[英]How can I UPDATE fields separately with Prisma?
我有一个名为Post
的对象,其中包含我需要能够单独更新的字段。 例如,该对象将具有三个字段: title
content
summary
。
用例
我可以创建一个帖子对象并将其保存在我的数据库中,方法是填写字段title
,其他字段为空字符串。 我的想法是能够通过它的 ID 转到单个帖子页面,然后在需要时更新其他字段。
在我的页面上,我有此代码only
更新标题:
const updateTitleData = async () => {
try {
await fetch(`/api/story/${id}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(title)
})
refreshData()
} catch (error) {
toast.error('Document could not be updated')
console.error(error);
}
};
在我的API路由中,我有以下内容:
const storyId = req.query.id
const {title, content, summary} = req.body
else if (req.method !== 'PUT') {
console.log("Note could not be modified")
res.status(400).json({message: "Note could not be modified"})
} else {
await prisma.story.update({
where: {id: storyId},
data: {
title,
content,
summary
}
})
res.status(200).json({message: ' updated'})
}
我无法让它工作,当我以这种方式使用它时不会发生突变,即
const {title, content, summary} = req.body
但是当我这样的时候
const title = req.body
const content = req.body
const summary = req.body
如果我只更新其中一个,我会得到一个突变,但它会用相同的值更新所有 3 个字段。
我怎样才能一次只更新一个字段?
假设title
是一个字符串。 如果你路过
body: JSON.stringify(title)
在 API 中, req.body
将是一个字符串。 当你在做的时候
const title = req.body
const content = req.body
const summary = req.body
然后这个字符串将存储在所有三个变量中。 因此,您帖子的所有三个属性都将更新为相同的值。
通常你会传递类似的东西:
body: {
title: "new title"
}
在 API 中。
那么身体就是那个物体。 如果你这样做
const {title, content, summary} = req.body
title
将是字符串new title
, content
和summary
将是undefined
的。
然后您可以使用这些值相应地更新您的数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.