Apollo Graphql自定义标量JSON - 抱怨“TypeError:type.getFields不是函数”

时间:2017-01-27 20:39:57

标签: json graphql graphql-js apollo

我正在开发一个apollo-express graphql服务器。我试图整合模块'graphql-type-json'但是当我跟着this description关于如何集成时,我尝试了很多东西,但似乎这个类型没有被正确传递给解析器 - 但是我在调试中遇到了障碍,可以使用一些帮助。以下是我正在做的事情的总结。

import { makeExecutableSchema } from 'graphql-tools';
const GraphQLJSON = require('graphql-type-json');
//Have also tried import GraphQLJSON from 'graphql-type-json';

const schema = `
scalar JSON

type Device {
  deviceconfig: JSON
}

type Query {
  foo: Foo
}
`;

const resolveFunctions = {
   JSON: GraphQLJSON,
   //JSON: {return GraphQLJSON} stops error but other issues come up...
   Query: ...
 };

const jsSchema = makeExecutableSchema({
typeDefs: schema,
resolvers: resolveFunctions,
resolverValidationOptions: {
  requireResolversForNonScalar: false,
},
allowUndefinedInResolve: true,
printErrors: true,
});

不确定它是否相关但我的npm存在一些问题:

graphql-type-json@0.1.4

UNMET PEER DEPENDENCY graphql@0.8.2 invalid

├─┬ graphql-tools@0.4.2

│ ├── UNMET PEER DEPENDENCY graphql@^0.5.0 || ^0.6.0


npm ERR! peer dep missing: graphql@^0.6.1 || ^0.7.0, required by apollo-server@0.3.3

npm ERR! peer dep missing: graphql@^0.5.0, required by graphql-tools@0.4.2

npm ERR! extraneous: casual@1.5.8 /home/apollo/node_modules/casual

npm ERR! extraneous: mongoose@4.6.6 /home/apollo/node_modules/mongoose

npm ERR! extraneous: mysql-events@0.0.8 /home/apollo/node_modules/mysql-events

npm ERR! peer dep missing: graphql@^0.5.0 || ^0.6.0, required by express-widgetizer@0.5.11

1 个答案:

答案 0 :(得分:1)

我在解析器

中解决了这样的自定义标量JSON
 JSON: {

    __serialize(value) {
        return GraphQLJSON.parseValue(value);
    } }

它对我来说很好。我认为它会对你有所帮助