Использование Prisma GraphQL-Yoga в качестве приложения Express / Node: как вызвать мутации GraphQL на стороне сервера? - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь выполнить обработку изображений на узле и использую сервер Prisma GraphQL-Yoga для управления очередью заданий. Интерфейс React / Apollo, который ставит в очередь задания, то есть вызывает мутацию на сервере, который сохраняет задания в БД через Prisma. Изображения загружаются с использованием multer, используя тот факт, что сервер GraphQL-Yoga представляет сервер Express ниже с server.express - я предполагаю, что можно использовать сервер GraphQL-Yoga в качестве обычного Express / Узел сервера, когда мне нужно.

Мой вопрос: как мне изменить статус заданий на completed в моей базе данных, когда каждое задание выполнено? Конечно, я могу получить прямой доступ к prisma, как и в своих средствах распознавания, но я подумал, что может быть более элегантно использовать мутацию, то есть сохранить все обращения к БД с помощью GraphQL. Как уже было сказано, я использую Apollo из интерфейса React. Могу ли я назвать мутацию из бэкэнда? Как я могу это сделать?

Спасибо за любые идеи! Я новичок в GraphQL и иногда скучаю по лесу за деревьями ...

1 Ответ

1 голос
/ 13 марта 2019

Я делаю что-то подобное на своем сервере, я могу показать вам, как я это делаю, если вам это поможет.

Поэтому я экспортирую экземпляр Prisma db следующим образом:

import { Prisma } from 'prisma-binding';
export const db = new Prisma({
  typeDefs: 'src/generated/prisma.graphql',
  endpoint: process.env.PRISMA_ENDPOINT,
  secret: process.env.PRISMA_SECRET,
  debug: true,
});

Затем, где бы я ни захотел использовать это, я просто импортирую его import { db } from '../config/config';, и тогда у меня есть доступ к распознавателям и т. Д .:

db.query.user({}, ` { 
    id
    name
  } `
)

или аналогично для мутаций.

Это единственный способ получить доступ к данным из других мест на моем сервере. Не уверен, что это то, что вы уже делаете, но на всякий случай это может вам помочь.

Приветствия:)

...