Der folgende Code funktioniert, wenn das gesamte Schema in einer einzigen Datei ist, aber ich bekomme den obigen Fehler, wenn ich versuche, es in einzelne Dateien zu teilen.Fehler: UserCreatePayload.viewer Feldtyp muss Ausgabetyp sein, aber erhalten: undefined
Ich importiere alle Arten und Funktionen.
Ich muss weitere Details hinzufügen, aber ich bin mir nicht sicher, was ich sagen soll. Ich denke, es ist ein Sequenzierungsproblem, da es in einer einzigen Datei funktioniert, aber nicht aufgeteilt wird.
Vielen Dank.
const UserCreateMutation = mutationWithClientMutationId({
name: 'UserCreate',
inputFields: {
email: {type: new GraphQLNonNull(GraphQLString)},
password: {type: new GraphQLNonNull(GraphQLString)}
},
outputFields: {
viewer: {
type: viewerType,
resolve() {
return viewerGet();
}
},
field: {
type: userType,
resolve(node) {
return node;
}
}
},
async mutateAndGetPayload({email, password}, {db, req}) {
export const viewerType = new GraphQLObjectType({
name: 'Viewer',
fields() {
return {
id: globalIdField('Viewer', ({_id: viewerLocalId}) => {
return viewerLocalId;
}),
_id: {type: GraphQLID},
user: {
type: userType,
resolve(parent, args, {req: {user}}) {
return user || {};
}
},
profile: {
type: profileConnectionType,
args: {
id: {type: GraphQLID},
searchTerm: {type: GraphQLString},
...connectionArgs
},
resolve(parent, {id: profileGlobalId, searchTerm, ...connectionArgs}, {db}) {
const query = (() => {
const q = {};
if (profileGlobalId) {
const {id: profileLocalId} = fromGlobalId(profileGlobalId);
Object.assign(
q,
{_id: new ObjectID(profileLocalId)}
);
}
if (searchTerm) {
Object.assign(
q,
{
$text: {
$search: `\"${searchTerm}\"`
}
}
);
}
return q;
})();
const sort = {_id: -1};
const limit = 0;
return connectionFromPromisedArray(
promisedArrayGet(
query,
sort,
limit,
profileCollectionName,
db
),
connectionArgs
);
}
}
};
},
interfaces: [nodeInterface]
});
class Viewer extends Object {}
export const viewerGet =() => {
return Object.assign(
new Viewer(),
{
_id: 'Viewer'
}
);
};
Import {viewerType, usertype, viewerGet}
Bitte aktualisiere die Frage mit dem Import von viewerType und der viewerType Objecttype –
ich hinzugefügt, um die viewerType und Objekt – James
sie in Module und eine normale 'module.exports' Aufspalten funktioniert gut –