如何在实际后端中转换请求体实现Prisma批量关联插入操作
Prisma请求体转关联插入参数实现方案
直接对请求体的categories数组做遍历转换即可,核心是补全assignedAt服务端时间、把关联分类改成connect结构,适配Prisma的嵌套写入语法。
完整实现代码
// 以Express框架为例,先获取请求体 const reqBody = req.body; // 转换为Prisma要求的data格式 const createPostData = { title: reqBody.title, categories: { create: reqBody.categories.map(cateItem => ({ // 注意和你Prisma Schema定义的字段名对齐,示例里是小驼峰assignedBy assignedBy: cateItem.assignedby, // 时间直接在服务端生成,不要信任前端传入的时间参数 assignedAt: new Date(), category: { connect: { id: cateItem.category.id } } })) } } // 调用Prisma插入方法 const createdPost = await prisma.post.create({ data: createPostData })
注意事项
- 如果你的Prisma Schema中中间表的赋值人字段就是全小写
assignedby,不需要做字段名转换,直接用assignedby: cateItem.assignedby即可 - 生产环境建议提前校验传入的分类ID是否真实存在,避免Prisma抛出关联不存在的报错
- 可根据业务需求加参数校验,比如限制categories数组长度、校验title是否为空等
内容的提问来源于stack exchange,提问作者Binit
相关产品推荐
相关产品推荐

