Сегодня я начал изучать Prisma с использованием MongoDB. Но я столкнулся с проблемой, которая показалась мне умопомрачительной.
TypeError: Cannot read properties of undefined (reading 'findMany')
TLDR: Перезапустите сервер после изменения схем Prisma.
Я пытался выполнить следующий код:
const breakTimeLog = async (req: NextApiRequest, res: NextApiResponse) => {
const tests = await prisma.breakTimeLog.findMany();
res.status(200).json(tests);
};
Причина, по которой это было непонятно, заключается в том, что если я заменяю breakTimeLog
на user
, то все работает нормально. Я попробовал переименовать и регенерировать схему, так как думал, что это проблема именования из-за верблюжьего регистра. Это было единственное, что я мог заметить. Но не повезло ):
Вот сама схема
model User {
id String @id @default(auto()) @map("_id") @db.ObjectId
fname String
lname String
breakTimeLogs BreakTimeLog[]
}
model BreakTimeLog {
id String @id @default(auto()) @map("_id") @db.ObjectId
date DateTime
timeInSeconds Int
timeOfBreak DateTime @default(now())
user User @relation(fields: [userId], references: [id])
userId String @db.ObjectId
}
Везде, где я искал, предлагалось сгенерировать схему заново, или что это проблема с правописанием. После часа в кроличьей норе Google я сдался и начал взламывать ее с помощью случайных вещей.
Вот в чем дело: я не перезапустил сервер после создания новой модели, после чего все работает нормально!