0

MongoDB と PostgreSQL に接続する 2 つの ApolloLinks を持つ ApolloClient を定義しました。これは完全に機能しています。

const firstLink = new HttpLink({
  uri: 'graphql-postgre',
  //headers: yourHeadersHere,
  // other link options...
});
const secondLink = new HttpLink({
  uri: 'graphql-mongodb',
  //headers: yourHeadersHere
  // other link options...
});


const client = new ApolloClient({
 link: ApolloLink.split(
 o => o.getContext().clientName === "mongo", 
 secondLink, 
 firstLink // by default -> postgre)
 ),
 cache: new InMemoryCache(),
 fecthOptions: {
 mode: 'no-cors'
 },
 shouldBatch: true
});

ここで、新しいデータベース (Neo4J) にアクセスするために新しいリンクを追加する必要がありますが、例が見つからず、2 つ以上のソースを使用できるかどうかもわかりません。2 番目のリンクにいくつかのロジックを含めようとして、次のコードを試しましたが、期待どおりに動作しません。1 番目と 2 番目のリンクから情報を取得しますが、3 番目のリンクからは取得しません。

const thirdLink = new HttpLink({
  uri: 'graphql-neo4j',
  //headers: yourHeadersHere
  // other link options...
});

const client = new ApolloClient({
  link: ApolloLink.split(
    o => o.getContext().clientName === "mongo", 
    secondLink, 
      (o => o.getContext().clientName === "neo", 
      thirdLink,
      firstLink) // by default -> postgre)
  ),
  cache: new InMemoryCache(),
  fecthOptions: {
    mode: 'no-cors'
  },
  shouldBatch: true
});

前もって感謝します。

4

1 に答える 1