#javascript #node.js #graphql #apollo-server
#javascript #node.js #graphql #apollo-сервер
Вопрос:
Я пытаюсь понять, как передать мою модель mongoose решателям. Пока я знаю 3 способа:
- Определять модель глобально (это, конечно, некрасиво)
- Передайте model в
context
параметрApolloServer
конструктора. В документации указано, что все, что совместно используется преобразователями, может быть передано в контексте. Модели принадлежат к этой категории. - Передайте модель в
dataSource
параметреApolloServer
конструктору. Расширяйтеapollo-datasource
и добавляйте удобные функции. Похоже, это тоже хороший кандидат.
Итак, какой способ подходит для передачи модели данных преобразователям?
Комментарии:
1. И контекст, и источник данных кажутся прекрасными. Если я правильно понимаю источники данных, они представляют собой уровень абстракции, хотя я действительно не вижу смысла в том, чтобы обернуть в него ваш mongoose. Мы используем загрузчики данных для кэширования и пакетных запросов. Для каждого запроса мы создаем загрузчики данных и привязываем их к контексту. У нас это сработало довольно хорошо.
2. @Herku было бы очень полезно увидеть ваш ответ с некоторым примером, касающимся кэширования / пакетной обработки загрузчиков данных через контекст.