Πρόβλημα με το πέρασμα δεδομένων προς graphql από αντιδράσουν

ψήφοι
0

Έχω το όνομα χρήστη και τον κωδικό πρόσβασης που θέλω να στείλω σε graphql backend από αντιδρούν στο frontend. Είμαι χρησιμοποιώντας τον Απόλλωνα πελατών γι 'αυτό

από την πλευρά του πελάτη μου έχω αυτό

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

Και είμαι καλώντας όπως αυτό

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

Στον server μου

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)
            }
        },
    }
})

Το πρόβλημα είναι - είμαι περνώντας τον κωδικό πρόσβασης και το όνομα χρήστη τρεις διαφορετικές όπως χορδές, αλλά μου console.log(username, password, 123)σε μεταλλάξεις δίνει πίσω undefinedκαι την πλήρη αντικείμενο με όνομα, κωδικό πεδία.

Δεν είμαι σίγουρος πού κάνω κάτι λάθος. Όλη η βοήθεια θα εκτιμηθεί πολύ.

Δημοσιεύθηκε 14/02/2020 στις 00:02
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Η resolveλειτουργία έχει source, args, contextκαι infoως params. Μπορείτε να διαβάσετε περισσότερα γι 'αυτό σε συνάρτηση επίλυσης υπογραφή .

Έτσι ουσιαστικά ζητάτε sourceκαι args, γι 'αυτό το ένα είναι undefinedκαι το άλλο είναι το αντικείμενο της επιχειρήματα. Ο τρόπος για να πάρετε τις μεταβλητές σας σε αναλυτή σας είναι:

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
            }
        },
    }
})

Η ελπίδα αυτό βοηθά.

Απαντήθηκε 17/02/2020 στις 10:43
πηγή χρήστη

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