FreeCode.Academy

Стратегии обучения

Уроки

Технологии

Участники

Проекты

Топики

Блоги

Офис

О проекте

Николай Ланец
Николай Ланец
Мутации в @prisma-cms/nextjs-nexus
Дима, привет!

Так ты внимательней будь. У тебя в призма-схеме что написано?
createdById String @db.VarChar(32) CreatedBy User @relation(fields: [createdById], references: [id])
createdById - с маленькой буквы. А ты что пишешь? CreatedById с большой буквы. Ты бы хотя бы Ctrl + Space нажал, тебе вскод подсказал бы.


В наименовании поля тоже перепутал, написал t.nonNull.field('CreatedById' (с большой буквы).

И здесь ты в целом не очень хорошо поступил. На примере того же "правильного" поля mashroomId: У тебя в БД mashroomId - это строка (в призма-схеме), а связанный объект - Mashroom. А ты у себя в нексусе эти строчные поля перебиваешь объектами. Это не хорошо. Получается, если тебе нужен будет всего-лишь id связанного объекта, тебе придется прям запрашивать этот объект. Представь, ты получаешь список сотни объектов и к ним надо будет id связанных объектов: на получение списка у тебя будет 1 запрос, а потом на каждый объект еще сотня запросов. А если ты и второй связанный объект захочешь, то еще сотня запросов. И все это без необходимости. Резюме: строчное поле должно возвращать строчное значение. Для объектов делай другое поле.

И еще, вот ты гриб сделал не обязательным полем, а кем создано - обязательным. Я тебе говорил: это не хорошая практика, она будет от тебя требовать в каждом запросе прописывать запрос и на связанный объект.

Переделывай, я не буду тебе сейчас отправлять ПР. Подсказок достаточно.