Неизвестные аргументы в Graphql.js

Я запускаю простой код graphql, используя аргумент с помощью express-graphql. Но graphiql показывает сообщение об ошибке "Неизвестный аргумент \" возраст \ "в поле \" лиц \ "типа \" Запрос \ ".

Это мой код.

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.info(context);
    console.info(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.info('Now browse to 
localhost:4000/graphql'));

Я ожидал, что если запрошу вот так.

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

затем показывать данные, а не ошибку.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
0
603
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вам нужно исправить схему запроса! ваш запрос требует ввода, и он должен быть таким:

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

type Person{
    name: String
    age: Int

}
`);

Другие вопросы по теме