Graphql apollo server如何在koa/express中间件中访问数据源
我是阿波罗服务器的新手,所以我可能做错了什么 在Graphql apollo server如何在koa/express中间件中访问数据源,graphql,apollo,apollo-server,Graphql,Apollo,Apollo Server,我是阿波罗服务器的新手,所以我可能做错了什么 在apollo服务器中,数据源用于通过apollo服务器创建和初始化。但是我还想访问koa中间件中的一些数据源。比方说,我有一个名为UserDataSource的DataSource,这就是我使用ApolloServer创建它的方式: const server = new ApolloServer({ typeDefs, resolvers, dataSources:function(){ return {
apollo服务器
中,数据源
用于通过apollo服务器
创建和初始化。但是我还想访问koa
中间件中的一些数据源
。比方说,我有一个名为UserDataSource
的DataSource
,这就是我使用ApolloServer
创建它的方式:
const server = new ApolloServer({
typeDefs,
resolvers,
dataSources:function(){
return {
user: new UserDataSource(),
};
},
});
// this is my middleware
async function auth(ctx, next){
// Here I need to access `UserDataSource`
// pass control down to apollo-server
await next();
}
// koa server
const app = new Koa();
app.use(auth);
server.applyMiddleware({ app });
在此之后,我可以访问解析器中的数据源.user
。但是其他一些中间件
也需要访问用户数据源
。是否有一些关于如何实现这一目标的官方指南
PS,也许我可以在一个中间件中手动创建所有数据源,并将它们分配给ctx
。但我认为这是一个小技巧