【问题标题】:PRISMA: Getting type error on where clause in update methodPRISMA:在更新方法中的 where 子句上出现类型错误
【发布时间】:2020-12-13 16:49:10
【问题描述】:

有一个我需要帮助的特定 Prisma ORM 库错误。

我创建了一个迁移并将其推送到 postgres 数据库。

我已经为 Prisma 生成了客户端模型,并且能够使用 create 方法查找所有并插入数据。

我遇到问题的地方是更新方法。

这是我的代码

app.post("/articles/:title", async (req: Request, res: Response) => {
  const article = await prisma.article.update({
    where: { title: req.params.title },
    data: { title: req.body.title, content: req.body.content },
  })
  res.send('The article was posted sucessfully.' + article)
})

我收到以下错误,这让我认为客户端在使用 where 参数时没有找到类型“标题”。

app.ts:65:14 - 错误 TS2322:类型 '{ 标题:字符串; }' 不可分配给类型 'ArticleWhereUniqueInput'。 对象字面量只能指定已知属性,而 'title' 不存在于类型 'ArticleWhereUniqueInput' 中。

65 其中:{ 标题:req.params.title }, ~~~~~~~~~~~~~~~~~~~~~~~

node_modules/.prisma/client/index.d.ts:784:3 第784章 ~~~~~ 预期的类型来自在类型 'Subset' 上声明的属性 'where'

还有其他人遇到过这个问题吗? 我试图自省数据库,以确保数据库完全按原样捕获,包含标题和内容字段,然后再次生成客户端。

非常感谢 詹姆斯

【问题讨论】:

标签: orm prisma


【解决方案1】:

找到答案:Post 答案是来自Antonie 的回复

中的字段

  • 在哪里

需要独一无二。

如果您可以创建一些字段,比如说 date @unique(日期:DateTime!@unique),并将其用于您在 upsert 中的位置,我认为它会起作用(在我的本地测试)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 2016-07-10
    • 2014-02-08
    • 2023-01-03
    • 1970-01-01
    • 2019-10-23
    相关资源
    最近更新 更多