在Apollo Server中,可以使用requestContext
对象来访问正在解析查询或突变的函数。requestContext
包含有关请求的信息,并且可以在整个请求生命周期中进行访问。
下面是一个示例代码,展示了如何在requestContext
中获取正在解析查询或突变的函数:
const { ApolloServer, gql } = require('apollo-server');
const typeDefs = gql`
type Query {
hello: String
}
`;
const resolvers = {
Query: {
hello: (_, __, { requestContext }) => {
// 获取正在解析的函数名称
const functionName = requestContext.operationName;
// 获取正在解析的函数的路径
const functionPath = requestContext.path;
console.log('正在解析的函数名称:', functionName);
console.log('正在解析的函数路径:', functionPath);
return 'Hello, Apollo Server!';
},
},
};
const server = new ApolloServer({
typeDefs,
resolvers,
});
server.listen().then(({ url }) => {
console.log(`Apollo Server is running at ${url}`);
});
在上面的示例中,我们定义了一个简单的查询类型Query
,其中包含一个hello
字段。在hello
字段的解析函数中,我们可以使用requestContext.operationName
获取正在解析的函数名称,并使用requestContext.path
获取正在解析的函数的路径。
当执行查询hello
时,控制台将输出以下内容:
正在解析的函数名称: hello
正在解析的函数路径: [ 'hello' ]
通过这种方式,您可以在解析函数中访问requestContext
对象,并获取有关正在解析的查询或突变的函数的信息。