PRISMA:updateメソッドのwhere句でタイプエラーが発生する

Aug 24 2020

私が助けを必要としている特定のPrismaORMライブラリエラーがあります。

移行を作成し、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引数を使用すると、クライアントがタイプ 'title'を見つけられないと思わせる次のエラーが発生します。

app.ts:65:14-エラーTS2322:タイプ '{タイトル:文字列; } 'はタイプ' ArticleWhereUniqueInput 'に割り当てることはできません。オブジェクトリテラルは既知のプロパティのみを指定でき、「title」は「ArticleWhereUniqueInput」タイプには存在しません。

65ここで:{タイトル:req.params.title}、~~~~~~~~~~~~~~~~~~~~~~~

node_modules / .prisma / client / index.d.ts:784:3 784ここで、ArticleWhereUniqueInput ~~~~~期待されるタイプは、プロパティ 'where'から取得されます。このプロパティは、ここでタイプ 'Subset <ArticleUpdateArgs、ArticleUpdateArgs>'で宣言されています。

他の誰かがこの問題を抱えていましたか?データベースをイントロスペクトして、データベースがタイトルフィールドとコンテンツフィールドを使用して正確にキャプチャされていることを確認してから、クライアントを再度生成しようとしました。

ジェームスに感謝します

回答

3 JamesLovesPython Aug 25 2020 at 04:08

答えを見つけました:投稿の答えはアントニーからの応答でした

のフィールド

  • どこ

一意である必要があります。

いくつかのフィールドを作成できれば、たとえばdate @unique(date:DateTime!@unique)としましょう。これをアップサートのどこに使用すれば、うまくいくと思います(私のローカルでテスト済み)。