Я пишу мутацию для входа пользователя в NodeJS.
Выдает ошибку «Необходимо указать имя».
Вот запрос 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;
Может ли кто-нибудь помочь мне, почему он дает ошибку?
Заранее спасибо.
Я обновил вопрос и поставил запрос на мутацию браузера graphQL. Пожалуйста, проверьте.
попробуйте передать name во входном параметре, а не в параметре функции мутации login, и мутация должна быть такой, как это mutation{ login(input: $input) { _id, name{ fname, lname, mname } } }





Также очень полезно описать где, когда возникает ошибка. Я предполагаю, что он выдается, когда вы запускаете сервер узла.
Эта конкретная ошибка возникает из-за того, что в строке 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)
}
},
Или примените свой запрос, как описано Энтони:
mutation{
login(input: { username: "dfgdfg",password: "test1234" }) {
_id,
name{
fname,
lname,
mname
}
}
}
Вы можете показать свою мутацию или запрос из браузера