prismaの型エラーの解決法
prismaの型エラー
prismaではprisma generate というコマンドを使うことでschema.prismaにあるデータモデルの型を自動で作ってくれるという機能がありますが、それを知らず、ずっと型エラーで苦しんでいたので、似たような症状で悩んでいる人のためにこの記事で解決法を共有したいと思います。
どういうエラー?
型が作成されていないと、dbに続くプロパティに対して「プロパティ 'task' は型 '型の名前' に存在しません。ts(2339)」といったエラーが出ます
例
import type { NextApiRequest, NextApiResponse } from "next"
import db from "db"
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
switch (req.method) {
case "GET":
const tasks = await db.task.findMany() // dbに続くプロパティで型エラー
return res.status(200).json(tasks)
case "POST":
const task = await db.task.create({
data: {
title: req.body.title,
user: req.body.user,
},
})
return res.status(200).json(task)
default:
return res.send("method not allowed")
}
}
prismaは@prisma/clientからprismaあるいはPrismaClientをimportすることでデータベースに対してリクエストを送ったりできるようになります(Nextjsの場合)
私はBlitzjsというReactフレームワークを利用しているので、少し書き方が異なります。
prismaの代わりにimport db from "db"という記述をしています
解決法
上記に記したようにprisma generateを実行すると自動的に型を作ってくれます
私の場合はそれで解決しました
また、私はNextjsではなくBlitzjsを使っており、enhancePrismaという機能を利用しているので、通常のprismaの書き方とは少し異なるので、その違いについてもどこかで紹介したいと思います
Author And Source
この問題について(prismaの型エラーの解決法), 我々は、より多くの情報をここで見つけました https://zenn.dev/yasuda/articles/35923cbbeafab7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol