node.js - なぜCatchブロックはPrismaエラーをキャッチできないのですか?
こんにちは、なぜ try-catch が PrismaClientInitializationError をキャッチしないのか知りたいです:関数が try-catch ブロック内にあってもです。エラーがキャッチされなかった理由を知りたいのであって、エラーの解決方法についてではありません。
これは私のコードです
try
{
await prisma.user.createMany({
data : Array.from({length : numberOfUsers}, () => ({
fullName : faker.internet.userName(),
email : faker.internet.email().trim().toLowerCase(),
password : faker.internet.password().substring(0, 4).toLowerCase().trim(),
phone : faker.phone.number(),
verified : true,
}))
});
}
catch(error){
console.log("Error", "Wiiiiii");
}
そしてこれが出力です
PrismaClientInitializationError:
Invalid `prisma.user.createMany()` invocation in
/mnt/c/Users/khalid/Desktop/bringoria-hunt/backend/prisma/seed.ts:33:20
30
31
32 async function createUsers(numberOfUsers : number){
→ 33 await prisma.user.createMany(
error: Environment variable not found: DATABASE_URL.
--> schema.prisma:11
|
10 | provider = "mongodb"
11 | url = env("DATABASE_URL")
|
回答 #1
エラーは ~/backend/prisma/seed.ts から発生しており、環境変数 URL DATABASE_URL が見つからないというものです。これは最初にあなたが示したコードブロックとは関係ありません。エラーを正しくキャッチするには、~/backend/prisma/seed の createUsers メソッド内の await 関数の周りに try/catch を追加する必要があります。