Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Query.user的类型必须是输出类型,但Get:undefined_Node.js_Graphql - Fatal编程技术网

Node.js Query.user的类型必须是输出类型,但Get:undefined

Node.js Query.user的类型必须是输出类型,但Get:undefined,node.js,graphql,Node.js,Graphql,当我把它作为输入 { 用户(id:1){ 名字 } } 我得到输出 { “错误”:[ { “消息”:“Query.user的类型必须是输出类型,但get:undefined。\n\n Query.user(id:)的类型必须是输入类型,但get:undefined。” } ] } 我第一次做这个Graphql,我不确定我做错了什么,我看到了很多例子,但如果我这样做,我会有很多其他错误。我试图从输入类型更改为输入类型,但仍然存在问题。 server.js var express = requir

当我把它作为输入

{
用户(id:1){
名字
}
}

我得到输出
{
“错误”:[
{
“消息”:“Query.user的类型必须是输出类型,但get:undefined。\n\n Query.user(id:)的类型必须是输入类型,但get:undefined。”
}
]
}

我第一次做这个Graphql,我不确定我做错了什么,我看到了很多例子,但如果我这样做,我会有很多其他错误。我试图从输入类型更改为输入类型,但仍然存在问题。 server.js

var express = require('express'),
app = express(),
port = process.env.PORT || 4000;
var graphQLHTTP = require('express-graphql');
var schema = require('./schema');
app.use(graphQLHTTP({
   schema,
   graphiql:true,}))
app.listen(port);
下面是schema.js

const {
GrpahQLString,
GrpahQLInt,
GraphQLSchema,
GraphQLInputObjectType,
GraphQLObjectType,
GraphQLOutputType
} = require('graphql');
const fetch = require('node-fetch');
const BASE_URL = 'http://localhost:3000';
const UserType = new GraphQLInputObjectType({
    name : 'user',
    description : "...",
    fields: () => ({
    id: {
        inputType : GrpahQLInt,
    //      resolve: (user) => user.id,
    },
    firstName: {
        inputType : GrpahQLString,
//       resolve: (user) => user.firstname,
        },
    lastName: {
        inputType : GrpahQLString,
//       resolve: (user) => user.lastname,
    },
    email: {
        inputType : GrpahQLString,
//       resolve: (user) => user.email,
        }
    })
});
module.exports = new GraphQLSchema({
    query: new GraphQLObjectType({
    name : 'Query',
    fields: () => ({
        user : {
            inputType: UserType,
            args: {
            id: {type: GrpahQLInt}
            },
            resolve : (root ,args) =>
                fetch(`${BASE_URL}/users/${args.id}/`).then(res=>res.json()).then(json=> json.user)
            }
        })
    })
});

我对您自己的答案投了反对票,主要是因为您没有解释,甚至一句话也没有解释您的第一个代码中的错误(即使对于经验丰富的人来说,这已经足够清楚了)。这样,您的答案对任何未来的用户来说都没有帮助,因为他们正在寻找解决自己问题的解决方案,这可能是类似的。这个网站是关于一个开发者互相帮助的社区;我建议您编辑您的答案,并解释您自己代码中的错误。很高兴在事后重新投票。我对你自己的答案投了反对票,主要是因为你没有解释,甚至一句话也没有解释你的第一个代码中的错误(即使对于有更多经验的人来说这已经足够清楚)。这样,您的答案对任何未来的用户来说都没有帮助,因为他们正在寻找解决自己问题的解决方案,这可能是类似的。这个网站是关于一个开发者互相帮助的社区;我建议您编辑您的答案,并解释您自己代码中的错误。很高兴以后再投票。
var graphql = require('graphql');
const fetch = require('node-fetch');

const BASE_URL = 'http://localhost:3000';


const userType = new graphql.GraphQLObjectType({
name : 'user',
description : "...",
fields: {
   id: {
    type : graphql.GraphQLInt,
    },
    firstName: {
    type : graphql.GraphQLString,
    resolve: (user) => user.firstname,
    },
    lastName: {
    type : graphql.GraphQLString,
    resolve: (user) => user.lasttname,
    },
    email: {
    type : graphql.GraphQLString,
    resolve: (user) => user.email,
    },
}
});

const query1 = new graphql.GraphQLObjectType({
name : 'Query',
fields: {
    user : {
      type : userType,
      args : {
          id: { type: graphql.GraphQLInt}
      },
      resolve : (root ,{id}) =>
          fetch(`${BASE_URL}/users/1/`).then(res =>res.json()).then(json=> json.user)
      }
    }
 });


module.exports.default = new graphql.GraphQLSchema({
    query : query1
});