0

我正在尝试在 Node 上进行图像处理,并且正在使用 Prisma GraphQL-Yoga 服务器来管理作业队列。将作业排队的 React/Apollo 前端,也就是说,它在服务器上调用 Mutation,通过 Prisma 将作业存储在数据库中。图片是使用multerGraphQL-Yoga 服务器在下面公开 Express 服务器这一事实上传的server.express——我假设在需要时可以将 GraphQL-Yoga 服务器用作常规 Express/Node 服务器至。

completed我的问题是:每项工作完成后,如何将工作状态更改为数据库中的状态?当然,我可以像在解析器中那样直接访问prisma,但我认为使用 Mutation 可能更优雅,也就是说,使用 GraphQL 保留对数据库的所有访问。如前所述,我正在使用 React 前端的 Apollo。我可以从后端“调用”突变吗?我该怎么做?

感谢您的任何见解!我是 GraphQL 新手,有时只见树木不见森林......

4

1 回答 1

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
  } `
)

或类似的突变。

这是我能够从服务器中其他位置访问数据的唯一方法。不确定这是否是您已经在做的事情,但以防万一它可以帮助您。

干杯:)

于 2019-03-12T23:30:33.870 回答