Probléma a tompított adatok graphql származó reagálni

szavazat
0

Van felhasználónevét és jelszavát, amit akar küldeni graphql backend re reagál frontend. Én a apollo kliens, hogy

én kliens oldalon van ez a

const REGISTER_USER = gql`
  mutation RegisterUser($username: String!, $password: String!) {
    registerUser(username: $username, password: $password) {
      username,
      password
    }
  }
`;

És hívom, mint ez

registerUser({ variables: { username: values.username, password: values.password } })

Az én szerver

const UserType = new GraphQLObjectType({
    name: 'user',
    fields: () => ({
        username: { type: GraphQLString },
        password: { type: GraphQLString }
    })
});
const Mutations = new GraphQLObjectType({
    name: 'Mutation',
    fields: {
        registerUser: {
            type: UserType,
            args: {
                username: { type: GraphQLString },
                password: { type: GraphQLString }
            },
            resolve(username, password) {
                console.log(username, password, 123)
            }
        },
    }
})

A probléma az - én halad jelszavát és felhasználónevét separatly vonósok, de a console.log(username, password, 123)mutációkat adja vissza undefinedés a teljes objektum felhasználónév, jelszó mezőket.

Nem vagyok benne biztos, ha én csinálok valamit rosszul. Minden segítséget lesz nagy népszerűségnek örvend.

A kérdést 14/02/2020 00:02
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

A resolvefunkció source, args, contextés infoa params. Elolvashatja többet róla rezolverkábel funkció aláírás .

Tehát alapvetően kérsz sourceés args, ezért az egyik undefined, a másik pedig a tárgya érveket. A módja, hogy a változókat a feloldó nem:

const Mutations = new GraphQLObjectType({
    name: 'Mutation',
    fields: {
        registerUser: {
            type: UserType,
            args: {
                username: { type: GraphQLString },
                password: { type: GraphQLString }
            },
            resolve: (source, args) {
                console.log(args.username, args.password)
                // HERE: you can access your arguments input as part of the 'args' object
            }
        },
    }
})

Remélem ez segít.

Válaszolt 17/02/2020 10:43
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more