Лучше передать объект призмы через контекст резольверам или использовать его напрямую?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

0
задан Jose Ángel de Pascual Viciana 8 April 2019 в 11:03
поделиться

1 ответ

Вот несколько причин, почему вы хотите сделать это через контекст, хотя в вашем подходе нет ничего неправильного:

  1. Когда вы будете писать модульные тесты, вы можете легко поменять местами призма с фиктивной реализацией. Вот пример этого: https://github.com/javascript-af/javascript-af/blob/1e89e5436fbf0d6e3de37f12e6853a8ff6fc7898/packages/backend/tests/utils/gqlTestClient.ts#L10 115]

  2. Таким способом можно легко передать два экземпляра призмы, например, если вы хотите запросить данные в каком-то другом месте. Вы можете передать context.db1 и context.db2, создав экземпляр класса Prisma с двумя отдельными конечными точками и передав его на сервер graphql с помощью двух ключей в объекте контекста.

  3. В документах graphql рекомендуется, чтобы доступ к БД проходил через контекст. Всегда приятно следовать спецификации: https://graphql.org/learn/execution/#asynchronous-resolvers

0
ответ дан Harshit Pant 8 April 2019 в 11:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: