как разделить схему и распознаватели и замерить их apollo-server-express - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть пользователь и сообщение typeDefs / resolvers. Я хочу разделить их, чтобы я мог получить

User.schema.js 
User.resolver.js

Post.schema.js 
Post.resolver.js

link.Schema.js
link.resolvers.js

, как это сделать, и объединить их, чтобы получить только один typeDefs / resolvers, чтобы передать его

const server = new ApolloServer({
  typeDefs,
  resolvers
});

Ответы [ 2 ]

0 голосов
/ 11 августа 2019

Нет необходимости в дополнительных зависимостях для слияния типов, так как graphql-tools подходит для них.Посмотрите https://github.com/techyaura/graphqlNodeMongodb-server/tree/master/src/gql,, если это поможет.

У меня есть два файла todo.types.js & user.type.js в репо https://github.com/techyaura/graphqlNodeMongodb-server/tree/master/src/gql/types, и я просто объединяю их, и это работает нормально.

ПРИМЕЧАНИЕ: я не использую APOLLO GRAPHQL , вместо этого использую express-graphql просто

0 голосов
/ 23 сентября 2018

Я использовал пакет merge-graphql-schemas для определения типа и функции слияния глубоких объектов lodash для резольверов, например так:

import merge from "lodash/merge"
import { mergeTypes } from "merge-graphql-schemas"
import UserSchema from "./User.schema"
import UserResolvers from "./User.resolvers"
import PostSchema from "./Post.schema"
import PostResolvers from "./Post.resolvers"
import LinkSchema from "./Link.schema"
import LinkResolvers from "./Link.resolvers"

const typeDefs = mergeTypes([UserSchema, PostSchema, LinkSchema])
const resolvers = merge(UserResolvers, PostResolvers, LinkResolvers)

const server = new ApolloServer({
  typeDefs,
  resolvers
});

РЕДАКТИРОВАТЬ: обратите внимание, что graphql-tools mergeSchemas теперь рекомендуемый способ сшивания схемы с сервером apollo.

...