Как передать объект базы данных на ApolloServer

#javascript #node.js #graphql #apollo-server

#javascript #node.js #graphql #apollo-сервер

Вопрос:

Я пытаюсь понять, как передать мою модель mongoose решателям. Пока я знаю 3 способа:

  • Определять модель глобально (это, конечно, некрасиво)
  • Передайте model в context параметр ApolloServer конструктора. В документации указано, что все, что совместно используется преобразователями, может быть передано в контексте. Модели принадлежат к этой категории.
  • Передайте модель в dataSource параметре ApolloServer конструктору. Расширяйте apollo-datasource и добавляйте удобные функции. Похоже, это тоже хороший кандидат.

Итак, какой способ подходит для передачи модели данных преобразователям?

Комментарии:

1. И контекст, и источник данных кажутся прекрасными. Если я правильно понимаю источники данных, они представляют собой уровень абстракции, хотя я действительно не вижу смысла в том, чтобы обернуть в него ваш mongoose. Мы используем загрузчики данных для кэширования и пакетных запросов. Для каждого запроса мы создаем загрузчики данных и привязываем их к контексту. У нас это сработало довольно хорошо.

2. @Herku было бы очень полезно увидеть ваш ответ с некоторым примером, касающимся кэширования / пакетной обработки загрузчиков данных через контекст.