如何在解析器(查询或突变)中编写私有函数?

How to write a private function in resolver(query or mutation)?

我使用apollo server和graphql来开发后端。不知道在resolver里面怎么写私有函数,"private"的意思是不能被前端调用,只能被resolver.Ideally里的其他函数调用,希望这个函数可以在 Query 或 Mutation 中。

Mutation {
    addFlowHistroy(id: ID!): FlowHistory
    changeFlowStatus(ied: ID!) FlowLog
}

我希望addFlowHistroy可以被changeFlowStatus调用,而不是暴露给前端。我应该怎么办?谢谢

没有在另一个解析器中调用解析器的机制,永远也不需要这样做。如果您有一些在解析器之间共享的逻辑,您可以将它提取到它自己的函数中,然后直接在每个解析器中调用该函数——如果它不会被解析器使用,则无需向您的模式添加字段客户.

const typeDefs = gql`
  type Query {
    four: Int!
    nine: Int!
  }
`

const resolvers = {
  Query: {
    foo: () => square(2),
    bar: () => square(3),
  },
}

function square(x) {
  return x * x
}

如果共享逻辑表示业务逻辑,它可能应该存在于域模型或服务中。然后,您的解析器将只对该模型或服务调用适当的方法。