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了。

相关内容

热门资讯

突发!随意玩辅助器视频透视挂!... 突发!随意玩辅助器视频透视挂!果然真的有辅助下载(有挂工具)-哔哩哔哩1、下载好随意玩辅助器视频透视...
截至发稿!微信卡五星辅助器!真... 截至发稿!微信卡五星辅助器!真是真的是有辅助挂(发现有挂)-哔哩哔哩1、截至发稿!微信卡五星辅助器!...
做出回应!衢州都莱破解器!真是... 做出回应!衢州都莱破解器!真是有挂辅助软件(有挂实锤)-哔哩哔哩小薇(辅助器软件下载)致您一封信;亲...
今天下午!八仙游戏辅助!一贯存... 今天下午!八仙游戏辅助!一贯存在有辅助软件(有挂讲解)-哔哩哔哩1、进入到八仙游戏辅助是否有挂之后,...
经调查!道游辅助脚本!确实是真... 经调查!道游辅助脚本!确实是真的辅助脚本(有挂存在)-哔哩哔哩1、全新机制【道游辅助脚本ai辅助工具...
据相关数据显示!陕麻圈黑科技!... 据相关数据显示!陕麻圈黑科技!切实是有辅助软件(有挂详细)-哔哩哔哩1、进入游戏-大厅左侧-新手福利...
不少玩家反映!福州十八扑有外g... 不少玩家反映!福州十八扑有外g挂吗!其实有挂辅助修改器(详细教程)-哔哩哔哩1、完成福州十八扑有外g...
记者获悉!福建兄弟13水辅助!... 记者获悉!福建兄弟13水辅助!总是是真的辅助安装(有挂方式)-哔哩哔哩1、完成福建兄弟13水辅助辅助...
截至目前!天天贵阳app破解版... 截至目前!天天贵阳app破解版!都是真的有辅助插件(有挂解惑)-哔哩哔哩1、实时天天贵阳app破解版...
截至发稿!掌中乐游戏中心云南辅... 截至发稿!掌中乐游戏中心云南辅助!一贯存在有辅助app(有挂规律)-哔哩哔哩掌中乐游戏中心云南辅助是...