【问题标题】:Unknown arguments at Graphql.jsGraphql.js 中的未知参数
【发布时间】:2019-05-24 00:19:48
【问题描述】:

我使用 express-graphql 的参数运行一个简单的 graphql 代码。但是 graphiql 在类型为 \"Query\" 的字段 \"persons\" 上显示错误消息 "Unknown argument\"age\"。

这是我的代码。

var express = require('express');
var graphqlHTTP = require('express-graphql'); 
var {buildSchema } = require('graphql');

var schema = buildSchema(`
type Query{
    hello: String
    persons: [Person]
}

type Person{
    name: String
    age: Int

}
`);

var root = {
hello: () => 'Hello World',
persons: (args, context, info) => {

    console.log(context);
    console.log(args);
    //Add args
    const {name, age} = args;
    //Add filter
    return [
        {   name: "kim", age:20},
        {   name: "lee", age:30},
        {   name: "yoo", age:40},
    ].filter((person)=>{
        if(!name && !age){return true;}
        if(!age && name && person.name === name){ return true;}
        if(!name && age && person.age === age){ return true;}
        if(name && age && person.name === name && person.age === 
age){return true;}
        return false;
    });
}
};

var app = express();
var session = {id: "1001", expires: 20000};

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

app.listen (4000, ()=> console.log('Now browse to 
localhost:4000/graphql'));

如果我这样查询,我预计会这样。

query{
 persons(age: 30){
 name
 age
 }
}

然后,显示数据,而不是错误。

【问题讨论】:

    标签: graphql express-graphql


    【解决方案1】:

    您需要修复您的查询架构!你的查询需要输入,它应该是这样的:

    var schema = buildSchema(`
    type Query{
        hello: String
        persons(age: Int, name: String): [Person]
    }
    
    type Person{
        name: String
        age: Int
    
    }
    `);
    

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 2019-09-05
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 1970-01-01
      相关资源
      最近更新 更多