GraphQL - 嵌套方法

时间:2017-08-31 22:01:27

标签: javascript node.js graphql

我是GraphQL的新手,想知道我是否可以为类型成员键入单独的方法

代码

var express = require('express');
var graphqlHTTP = require('express-graphql');

var { buildSchema } = require('graphql');

var schema = buildSchema(`
    type Query {
        beitraege: Beitrag
    }

    type Beitrag {
        beitr_name: String
        erst_name: String
    }
`);

var root = {

    // This is the part that does not work
    Beitrag: () => {

        beitr_name: () => {
            return "Foo";
        };

        erst_name: () =>  {
            return "Bar";
        }
    },

};

var app = express();

app.use("/graphql", graphqlHTTP({
    schema: schema,
    rootValue: root,
    graphiql: true,
}));

app.listen(3000, "0.0.0.0", () => {
    console.log("Started on port 3000");
});

这不起作用,因为GraphQL似乎不允许支持类型成员的单个方法。所以我在测试时得到null。我的问题是:

是否有可能以这种方式嵌套方法,或者每次进行查询时都必须返回两个字符串?

编辑:

在NodeJS GraphiQL中测试

输入查询

{
  beitraege {
    beitr_name
    erst_name
  }
}

输出

{
  "data": {
    "beitraege": null
  }
}

1 个答案:

答案 0 :(得分:0)

弄错了我的意思:

而不是Beitrag: () =>它必须是beitraege: () =>,因为我不想定义类型成员而是定义成员。我想。