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

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

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

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


person Cerulean    schedule 12.03.2019    source источник


Ответы (1)


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

Поэтому я экспортирую экземпляр 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
  } `
)

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

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

Ваше здоровье :)

person JV Lobo    schedule 12.03.2019