Gemäß die Dokumentation hier, das zweite Argument auf eine Resolver-Funktion in der Bibliothek graphql-Tool ist ein Objekt in dieArgumente zu graphql-tools Mutation Resolver ist kein Objekt in v> 0.8.0?
http://dev.apollodata.com/tools/graphql-tools/resolvers.html#Resolver-function-signature
jedoch Abfrage übergeben, wenn ich graphql-Tools mit einer Version von graphql laufe > = 0.8.0, das als zweites Argument übergebene "Objekt" fehlt einige Objekteigenschaften. Zum Beispiel sind arg.constructor
und arg.hasOwnProperty
nicht definiert.
In der vorherige Version, 0.7.2, beide diese Aussagen wahr bewerten würden:
arg.consructor === Object
arg.hasOwnProperty === 'function'
Wer weiß, was tatsächlich als zweites Argument übergeben zu werden, oder warum diese Eigenschaften, die in der Regel auf JS existieren Objekte sind undefiniert?
bearbeiten unter:
ich damit, indem Sie so etwas wie dies zu erreichen:
async resolverFuncForMutation(root, nonObjArgs, context) {
const args = Object.assign({}, nonObjArgs);
Aber ich will nicht zu haben, sich daran zu erinnern, wie zu tun, dass für jede Resolver-Funktion. Weiß jemand, wie es funktioniert, wenn es eine Möglichkeit gibt, das in einer Art Vorauflösung zu konfigurieren?
Dank Mann, das ist es! Leider hatte ich einige Drittanbieter-Bibliotheken aufrufen hasOwnProperty, ect. über die Argumente. Ich habe einen kleinen Präprozessor für meine Resolver-Funktionen geschrieben, um die Datenstruktur von Argumenten zu durchlaufen und etwas wie args = 'Object.assign ({}, args)' aufzurufen. Lief wie am Schnürchen – albertlockett