ApolloServer传入的dataStore对类不可见。
创始人
2024-09-09 13:00:52
0

要让Apollo Server传入的dataStore在类中可见,需要在类中通过constructor方法将dataStore作为属性进行实例化,并将constructor方法中的参数对象中的dataSources属性指定为传递进来的dataStore对象。示例代码如下:

const { ApolloServer } = require('apollo-server');
const { MyDataSource } = require('./myDataSource');

class MyResolver {
  constructor({ dataSources }) {
    // 将 dataStore 作为属性进行实例化
    this.myDataSource = new MyDataSource();
    // 将 dataSources 中的 dataStore 指定为实例化后的 MyDataSource 对象
    dataSources.myDataSource = this.myDataSource;
  }

  async myQuery(_, __, { dataSources }) {
    // 可以通过 this.myDataSource 访问 dataStore
    const result = await this.myDataSource.getData();
    return result;
  }
}

const server = new ApolloServer({
  typeDefs,
  resolvers: [MyResolver],
  // 将 dataStore 传入 context 的 dataSources 属性中
  dataSources: () => ({
    myDataSource: new MyDataSource(),
  }),
  context: ({ req }) => {
    return {
      // 将传入的 dataStore 保存在 context 中
      dataSources: req.dataSources,
    };
  },
});

通过在类中使用constructor方法将dataStore作为属性进行实例化,并将dataSources属性指定为传递进来的dataStore对象,就可以在类中访问和使用dataStore了。

相关内容

热门资讯

wepoke有辅助挂!德州ai... WePoker透视辅助工具核心要点解析‌,wepoke有辅助挂!德州ai辅助app,(AAPOKEr...
透视线上(aa扑克辅助)gov... 您好,这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款游戏中打牌都...
aapoker有猫腻!fish... aapoker有猫腻!fishpoker大菠萝外挂,(WpK)一向有挂(详细透视详细教程)1、每一步...
透视科技(德州免费辅助神器ap... 透视科技(德州免费辅助神器app)wepoke开发者(详细辅助黑科技教程)都是真的是有挂1、让任何用...
aa扑克辅助!德州ai人工智能... 1、aa扑克辅助!德州ai人工智能软件下载,(wepoke)本来有挂(详细辅助软件教程);详细教程。...
透视讲解(wpk提高胜率)we... 透视讲解(wpk提高胜率)wepower德州辅助器(详细辅助科技教程)往昔是真的有挂(1)透视讲解(...
透视ai(德州ai人工智能)w... 1、透视ai(德州ai人工智能)wepoke有正规吗(详细辅助可靠教程)固有存在有挂2、进入游戏-大...
wpk透视辅助工具!红龙扑克是... WePoker透视辅助工具核心要点解析‌,wpk透视辅助工具!红龙扑克是不是有问题,(aApoker...
透视好牌(智星德州菠萝有挂吗)... 透视好牌(智星德州菠萝有挂吗)wpk怎么玩胜率高(详细辅助揭秘教程)往昔有挂1、超多福利:超高返利,...
德州微扑克辅助!微扑克俱乐部2... 德州微扑克辅助!微扑克俱乐部24小时,(Wepoke)先前有挂(详细透视黑科技教程);科技详细教程Q...