#node.js #graphql #multer #prisma #prisma-graphql
#node.js #graphql #мультер #prisma #prisma-graphql
Вопрос:
Я пытаюсь выполнить обработку изображений на Node и использую сервер Prisma GraphQL-Yoga для управления очередью заданий. Интерфейс React / Apollo, который ставит задания в очередь, то есть он вызывает мутацию на сервере, который хранит задания в БД через Prisma. Изображения загружаются с помощью multer
, используя тот факт, что сервер GraphQL-Yoga предоставляет сервер Express под ним с помощью server.express
— Я предполагаю, что можно использовать сервер GraphQL-Yoga в качестве обычного сервера Express / Node, когда мне нужно.
Мой вопрос: как мне изменить статус заданий на completed
в моей базе данных, когда каждое задание выполнено? Конечно, я могу получить доступ prisma
напрямую, как я делаю в своих решателях, но я подумал, что было бы более элегантно использовать мутацию, то есть сохранить все обращения к БД с использованием GraphQL. Как уже было сказано, я использую Apollo из интерфейса React. Могу ли я «вызвать» мутацию из серверной части? Как я могу это сделать?
Спасибо за любую информацию! Я новичок в GraphQL и иногда пропускаю лес для деревьев…
Ответ №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
} `
)
Или аналогичный для мутаций.
Это единственный способ, которым я смог получить доступ к данным из других мест на моем сервере. Не уверен, что это то, что вы уже делаете, но на всякий случай это может вам помочь.
Приветствия