2017-02-27 88 views
0

我在尝试解析GraphQL类型内部的字段时遇到问题。 所以,在这里我想解决的patientQuery使用makeExecutableSchema的Graphql解析映射

const gqlSchema = makeExecutableSchema({ 
    typeDefs: ` 
    type patientQuery { 
    find: [String] 
    findOne: String 
    } 
    type Query { 
    patient: patientQuery 
    } 
    type Mutation { 
    addPost(name: String, title: String, content: String): patientQuery 
    } 
    schema { 
    query: Query 
    mutation: Mutation 
    } 
    `, 
    resolvers: { 
     patientQuery: { 
     find(root, params, context, ast) { 
      console.log('testing'); 
      return ['title']; 
     } 
     } 
    } 
    }); 

find财产但是当我做这样的

{ 
    patient { 
    find 
    } 
} 

查询我总是空

{ 
    "data": { 
    "patient": null 
    } 
} 

那么,什么是解决patientQuery类型内部字段的正确方法?

+0

在第一次看,我怀疑它与做事实上你正在返回一个字符串,但是这个字段需要返回一个字符串数组。 尝试返回'返回['标题']' – XuoriG

+0

改变了解析函数返回一个数组,但仍然得到空 – Shalkam

回答

0

所以,我发现了这个问题。 Query类型必须解决病人领域,以便它不会返回null

所以新的解析器对象将是这样的,为了解决这个问题

resolvers: { 
    Query: { 
    patient() { 
     return true; 
    } 
    }, 
    patientQuery: { 
    find(root, params, context, ast) { 
     console.log('testing'); 
     return [ 'title' ]; 
    } 
    } 
} 

老一: -

resolvers: { 
    patientQuery: { 
    find(root, params, context, ast) { 
     console.log('testing'); 
     return ['title']; 
    } 
    } 
}