如何在解析器(查询或突变)中编写私有函数?
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
}
如果共享逻辑表示业务逻辑,它可能应该存在于域模型或服务中。然后,您的解析器将只对该模型或服务调用适当的方法。
我使用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
}
如果共享逻辑表示业务逻辑,它可能应该存在于域模型或服务中。然后,您的解析器将只对该模型或服务调用适当的方法。