GraphQL Error : Must provide name
GraphQL Error : Must provide name
我正在编写用于在 NodeJS 中登录用户的变更。
给出错误 "Must Provide Name"。
这是浏览器 GraphQL 查询:
mutation{
login(username:"dfgdfg",password:"test1234") {
_id,
name{
fname,
lname,
mname
}
}
}
这是我的代码
const login = {
type: UserType,
args: {
input:{
name:'Input',
type: new GraphQLNonNull(new GraphQLObjectType(
{
username:{
name:'Username',
type: new GraphQLNonNull(GraphQLString)
},
password:{
name:'Password',
type: new GraphQLNonNull(GraphQLString)
}
}
))
}
},
resolve: async (_, input, context) => {
let errors = [];
return UserModel.findById("5b5c34a52092182f26e92a0b").exec();
}
}
module.exports = login;
谁能帮我看看为什么会报错?
提前致谢。
描述哪里错误发生也很有帮助。我假设它是在您启动节点服务器时抛出的。
抛出此特定错误是因为您在对象配置的第 8 行中缺少 name
属性。此外,此类型需要 GraphQLInputObjectType
而不是 GraphQLObjectType
。
args: {
input: {
type: new GraphQLNonNull(new GraphQLInputObjectType({
name: 'LoginInput',
fields: {
username:{
name:'Username',
type: new GraphQLNonNull(GraphQLString)
},
password:{
name:'Password',
type: new GraphQLNonNull(GraphQLString)
}
}
}))
}
},
你的代码还有一堆问题:
您的代码中未使用所有 name
属性(您添加它们可能是为了修复错误)。
您的查询与架构定义不匹配,请直接在字段中使用两个参数 username
和 password
,而不是在额外的输入类型中:
args: {
username:{
name:'Username',
type: new GraphQLNonNull(GraphQLString)
},
password:{
name:'Password',
type: new GraphQLNonNull(GraphQLString)
}
},
或按照 Anthony 的描述采用您的查询:
mutation{
login(input: { username: "dfgdfg",password: "test1234" }) {
_id,
name{
fname,
lname,
mname
}
}
}
我正在编写用于在 NodeJS 中登录用户的变更。
给出错误 "Must Provide Name"。
这是浏览器 GraphQL 查询:
mutation{
login(username:"dfgdfg",password:"test1234") {
_id,
name{
fname,
lname,
mname
}
}
}
这是我的代码
const login = {
type: UserType,
args: {
input:{
name:'Input',
type: new GraphQLNonNull(new GraphQLObjectType(
{
username:{
name:'Username',
type: new GraphQLNonNull(GraphQLString)
},
password:{
name:'Password',
type: new GraphQLNonNull(GraphQLString)
}
}
))
}
},
resolve: async (_, input, context) => {
let errors = [];
return UserModel.findById("5b5c34a52092182f26e92a0b").exec();
}
}
module.exports = login;
谁能帮我看看为什么会报错?
提前致谢。
描述哪里错误发生也很有帮助。我假设它是在您启动节点服务器时抛出的。
抛出此特定错误是因为您在对象配置的第 8 行中缺少 name
属性。此外,此类型需要 GraphQLInputObjectType
而不是 GraphQLObjectType
。
args: {
input: {
type: new GraphQLNonNull(new GraphQLInputObjectType({
name: 'LoginInput',
fields: {
username:{
name:'Username',
type: new GraphQLNonNull(GraphQLString)
},
password:{
name:'Password',
type: new GraphQLNonNull(GraphQLString)
}
}
}))
}
},
你的代码还有一堆问题:
您的代码中未使用所有 name
属性(您添加它们可能是为了修复错误)。
您的查询与架构定义不匹配,请直接在字段中使用两个参数 username
和 password
,而不是在额外的输入类型中:
args: {
username:{
name:'Username',
type: new GraphQLNonNull(GraphQLString)
},
password:{
name:'Password',
type: new GraphQLNonNull(GraphQLString)
}
},
或按照 Anthony 的描述采用您的查询:
mutation{
login(input: { username: "dfgdfg",password: "test1234" }) {
_id,
name{
fname,
lname,
mname
}
}
}