提问人:Coleb 提问时间:10/31/2023 更新时间:10/31/2023 访问量:50
运行服务器操作查找我没有要求它的数据(Prisma / MongoDB / Next14)
Running into a server action looking for data I am not asking it to (Prisma / MongoDB / Next14)
问:
我最近开始使用 Next14,就像我假设的其他人一样,并且在尝试创建一个非常简单的对象以推送到数据库中的“Decision”集合时遇到了错误。我的服务器操作显然不是在代码库中寻找 id 参数,因为它应该使用 Prisma Schema 中的 @map() 函数在服务器端自动生成。
我正在使用: 下一页 14.0.1 棱镜 5.5.2 Shadcn 用户界面
这是我在提交表单时遇到的错误:错误消息
这是我的架构:
model Pros {
id String @id @map("_id") @db.ObjectId
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
title String
weight Int
decision Decision? @relation(fields: [decisionId], references: [id])
decisionId String @map("decision")
}
model Cons {
id String @id @map("_id") @db.ObjectId
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
title String
weight Int
decision Decision? @relation(fields: [decisionId], references: [id])
decisionId String? @map("decision")
}
model Decision {
id String @id @map("_id") @db.ObjectId
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
title String
pros Pros[]
Cons Cons[]
}
这是我的服务器操作:
import prisma from "@/lib/prisma"
export const addDecision = async (formData) => {
await prisma.decision.create({
data: {
title: formData.get("title"),
},
})
}
最后,这是表单的 UI:
'use client'
import {
Dialog,
DialogContent,
DialogDescription,
DialogHeader,
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog"
import { addDecision } from "@/lib/actions"
export default function AddDecision({ children }) {
return (
<Dialog>
<DialogTrigger>Open</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Are you sure absolutely sure?</DialogTitle>
<DialogDescription>
<form action={addDecision}>
<input name="title" placeholder="title" />
<input type="submit" value="Submit" />
</form>
</DialogDescription>
</DialogHeader>
</DialogContent>
</Dialog>
)
}
我试过: 1.) 从架构中的 id 中删除 @map(Prisma 讨厌这一点) 2.) 添加 const { title } = formData;服务器操作的正上方 3.) 拔掉我不存在的头发
如果有人能为我指出正确的方向,我将不胜感激。
谢谢!
答: 暂无答案
评论