繁体   English   中英

使用Prisma GraphQL-Yoga作为Express / Node应用程序:如何在服务器端调用GraphQL突变?

[英]Using Prisma GraphQL-Yoga as an Express/Node application: how can I call GraphQL mutations server-side?

我正在尝试在Node上进行图像处理,并且正在使用Prisma GraphQL-Yoga服务器来管理作业队列。 React / Apollo前端将作业排队,也就是说,它在服务器上调用Mutation,该服务器通过Prisma将作业存储在DB中。 图像是使用multer上传的,这是因为GraphQL-Yoga服务器使用server.express暴露了Express服务器。我假设可以将GraphQL-Yoga服务器用作常规Express / Node。服务器何时需要。

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

感谢您的任何见解! 我是GraphQL的新手,有时错过了树林。

我在服务器上做了类似的事情,我可以告诉您如何做,以防它对您有所帮助。

所以我像这样导出Prisma数据库实例:

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

或类似的突变。

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

干杯:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM