Тип MainQuery должен определять одно или несколько полей.Экспресс GraphQL MongoDB - PullRequest
0 голосов
/ 11 июля 2019

Я новичок в MERN с graphQL.Я получаю следующую ошибку. Я застрял последние два дня. Я написал запрос MainSchema и GraphQL.Я не очень понял, я не совсем понял, где я иду не так.

Ниже приведен код для Backend, в котором я использую Express, GraphQL, MongoDB. Пожалуйста, дайте мне знать, если яопущено на что-либоТип

                let GraphQLObjectType = require('graphql').GraphQLObjectType;
                let GraphQLString = require('graphql').GraphQLString;
                let GraphQLList = require('graphql').GraphQLList;
                let MainSchema=require('./MainsSchema');
                let MainType=require('./MainsType');


                let QueryType=new GraphQLObjectType({
                    name:"MainQuery",
                    feilds:function(){
                        return{
                            Mains:{//List of all Mains
                                type:new GraphQLList(MainType),
                                resolve:function(){
                                    const Mains=MainSchema.find().exec()
                                    if(!Mains){
                                        throw new Error("Error")
                                    }
                                    return Mains
                                }
                            },
                        Main:{//search name
                                type:MainType,
                                args:{
                                    id:{
                                        name:'id',
                                        type:GraphQLString
                                    },
                                    MainName:{
                                        name:'MainName',
                                        type:GraphQLString
                                    }
                                },
                                resolve:function(root,params){
                                    const MainDetails=''
                                    if(params.id){
                                        MainDetails=MainSchema.find({}).exec()
                                    }else{
                                        MainDetails=MainSchema.find({MainName:params.MainName}).exec()
                                    }
                                    if(!MainDetails){
                                        throw new Error('Error')
                                    }
                                    return MainDetails
                                }
                            }
                        }
                    }
                });

                module.exports=QueryType;

MainMutation: мутация GraphQL

                        let GraphQLSchema = require('graphql').GraphQLSchema;
                        let GraphQLObjectType = require('graphql').GraphQLObjectType;
                        let GraphQLString = require('graphql').GraphQLString;
                        let GraphQLNonNull = require('graphql').GraphQLNonNull;
                        let MainSchema=require('./MainsSchema');
                        let MainType=require('./MainsType');
                        let MainQueryType=require('./MainsQueryType');


                        let Mutation=new GraphQLObjectType({
                            name:"Mutation",
                            fields:function(){
                                return{
                                    addMain:{
                                        type:MainType,
                                        args:{
                                            MainName:{
                                                type:new GraphQLNonNull(GraphQLString)
                                            }
                                        },
                                        resolve:function(root,params){
                                            const MainSchema=new MainSchema(params);
                                            const newMain=MainSchema.save();
                                            if(!newMain){
                                                throw new Error("Error")
                                            }
                                            return newMain
                                        }

                                    },
                                    removeMain:{
                                        type:MainType,
                                        args:{
                                            id:{
                                                type:new GraphQLNonNull(GraphQLString)
                                            }
                                        },
                                        resolve:function(root,params){
                                            const removeMain=MainSchema.findByIdAndRemove(params.id).exec();
                                            if(!removeMain){
                                                throw new Error("Error")
                                            }
                                            return removeMain
                                        }   
                                    }
                                }
                            }
                        });

                        module.exports=new GraphQLSchema({query:MainQueryType,mutation:Mutation}); 

app.js

                    const MainSchema=require("./Mains/MainMutations");

                    app.use('/graphql',cors(),ExpressGraphQLHTTP({
                            schema:MainSchema,
                            rootValue:global,
                            graphiql:true
                    }))  

Полагаю, что-то не так с Type, QueryType и Mutation.IЯ не понимаю, где я иду не так. Я гуглил, но не нашел много информации об ошибке. Тот, который я нашел, не работал для меня, я не очень понимаю.

Может кто-нибудь, пожалуйста, дай мнезнать, где я иду не так. Любая помощь приветствуется.

Может кто-нибудь, пожалуйста, руководство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...