【发布时间】:2021-08-24 23:51:18
【问题描述】:
我正在使用带有 graphql 和 graphql-compose 的 nodejs 所以我将方案定义为
schemaComposer.Query.addFields({
Me: MyResolvers,
Info: MyInfoResolvers,
Post: PostResolvers
})
schemaComposer.Mutation.addFields({
Login: MyLoginResolvers,
Register: RegisterResolvers
})
schemaComposer.Subscription.addFields({
Subscribe: Mysubscribe
})
所以任何获取所有查询、变异和订阅列表数组的函数 例如我需要打印到
[
{ operator: "Me", name: "Query" }
{ operator: "Info", name: "Query" }
{ operator: "Post", name: "Query" }
{ operator: "Login", name: "Mutation" }
{ operator: "Register", name: "Mutation" }
{ operator: "Subscribe", name: "Subscription" }
]
or Object is best
{
Query: ["Me", "Info", "Post"],
Mutation: ["Login", "Register"],
Subscription: ["Subscribe"]
}
我可以使用 graphql 库中的 parse 函数解析请求中的查询,以获取运算符和名称使用
import { parse } from "graphql"
const query:any = parse(context.req.body?.query)
const operator = query.definitions[0]?.operation
const name = query.definitions[0]?.selectionSet?.selections[0]?.name?.value
现在我需要列出所有已定义的查询、突变、订阅模式?有可能吗?
谢谢
【问题讨论】:
标签: node.js graphql express-graphql graphql-compose graphql-compose-mongoose