GraphQL δείχνοντας Αξία ως null

ψήφοι
0

Είμαι μάθηση GraphQL και έχω δύο τύπους αντικειμένων.

Ας πούμε, που μοιάζει με αυτό

Ας πούμε, ο τύπος του βιβλίου μοιάζει με αυτό

const BookType = new GraphQLObjectType({  
    name: 'Book',  
    fields: () => ({ 
        id: { type:  GraphQLID},
        name: { type: GraphQLString},
        genre: { type: GraphQLString }, 
        author: { 
            type: authorType,
            resolve(parents, args) {
               Author.findOne( 
                   {
                    name: parents.authorName
                   }, function(err, result) {
                       console.log(result)
                       return result
                   })
            }
        }

    })
})

και Συγγραφέας Τύπος μοιάζει με αυτό

const authorType = new GraphQLObjectType({  
    name: 'author',  
    fields: () => ({ 
        id: { type:  GraphQLID},
        name: { type: GraphQLString},
        age: { type: GraphQLInt },
        books: {  
            type: new GraphQLList(BookType), 
            resolve(parent, args) {
            }
        }
    })
})

Τώρα, είμαι προσθέτοντας δεδομένων μέσω μετάλλαξης (Δεν θα μοιράζονται γιατί πιστεύω ότι δεν έχει σημασία) και στη συνέχεια εκτελέστε το ερώτημα στο graphqlνα προσθέσει στοιχεία στο βιβλίο Τύπος. Εμφανίζει σωστά στοιχεία για το όνομα, το είδος, id αλλά για authorType που δείχνει τα δεδομένα ως μηδενική, ενώ η κονσόλα] .log αποτελέσματα συνδεθείτε κάτι τέτοιο στην κονσόλα

//This is console log in terminal
{ age: 'none',
  _id: 5bcaf8904b31d50a2148b60d,
  name: 'George R Martin',
  __v: 0 }

Αυτό είναι το ερώτημα που τρέχω στο graphiql

mutation{
        addBooks( 
           name: Game of Thrones,
           genre: Science Friction, 
            authorName: George R Martin
            ) {
           name,
           genre,
           author {
           name
                }
              }
           }

Μου ολόκληρο το σχήμα είναι διαθέσιμη εδώ

Μπορεί κάποιος παρακαλώ, παρακαλώ να με βοηθήσει να καταλάβω τι θα μπορούσα να κάνει λάθος;

Δημοσιεύθηκε 20/10/2018 στις 12:49
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Ένας αναλυτής πρέπει να επιστρέψει είτε κάποια αξία ή την υπόσχεση ότι θα επιλύσει σε μια τιμή - αν δεν το πεδίο να επιλυθεί θα επιστρέψει null. Έτσι, υπάρχουν δύο πράγματα από περίπου κωδικό σας. Ένα, που δεν επιστρέφουν είτε μια τιμή ή μια υπόσχεση. Δύο, μπορείτε να επιστρέψετε κάτι μέσα σε ένα επανάκλησης, αλλά αυτό δεν είναι πραγματικά να κάνει τίποτα, δεδομένου ότι οι περισσότερες βιβλιοθήκες αγνοήσει την τιμή επιστροφής της συνάρτησης επανάκλησης ούτως ή άλλως.

Μπορείτε να τυλίξετε μια επιστροφή κλήσης σε μια υπόσχεση , αλλά αυτό πρόκειται να είναι υπερβολή εδώ γιατί μαγκούστα ήδη παρέχει έναν τρόπο για να επιστρέψει μια υπόσχεση - απλώς παραλείψτε τη επανάκλησης εξ ολοκλήρου.

resolve(parent, args) {
  return Author.findOne({name: parent.authorName)
}

Αναλυτή μετάλλαξη σας λειτουργεί γιατί θα επιστρέψει την τιμή που επιστρέφεται από την κλήση save(), η οποία επιστρέφει στην πραγματικότητα μια υπόσχεση ότι θα επιλύσει την τιμή του μοντέλου παράδειγμα να σωθεί.

Απαντήθηκε 20/10/2018 στις 13:32
πηγή χρήστη

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