Вот что у меня сегодня заняло час, чтобы разобраться с Prisma.

Сегодня я начал изучать 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 я сдался и начал взламывать ее с помощью случайных вещей.

Вот в чем дело: я не перезапустил сервер после создания новой модели, после чего все работает нормально!

Оцените статью
devanswers.ru
Добавить комментарий