gpt4 book ai didi

node.js - Query.user 的类型必须是 Output Type 但得到 : undefined

转载 作者:太空宇宙 更新时间:2023-11-04 02:45:43 25 4
gpt4 key购买 nike

http://localhost:4000/当我作为输入时
{
用户(ID:1){

}
}

我得到输出{
“错误”:[
{
"message": "Query.user 的类型必须是输出类型,但得到:未定义。\n\nQuery.user(id:) 的类型必须是输入类型,但得到:未定义。"
}
]
}

我第一次做这个 Graphql,我不确定我在哪里做错了,我看到了很多例子,但如果我这样做,我会得到很多其他错误。我尝试更改输入类型,但仍然存在问题。服务器.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
});

关于node.js - Query.user 的类型必须是 Output Type 但得到 : undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50765094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com