如何解决使用 GraphQLSchema,是否有模块化 GraphQLObjectTypes 的语法?
如何将 userThat(可能还有其他几个相关字段)重构为其他不错的模块化文件,然后将它们包含到 root_query_type.js 中
这是一个普通的 node/express/graphql GraphQLObjectType 实现。
还是我注定拥有一个巨大的 root_query_type.js ?
schema.js
module.exports = new GraphQLSchema({
query: RootQueryType
});
root_query_type.js
const RootQueryType = new GraphQLObjectType({
name: 'RootQueryType',fields: {
userThis: {
type: UserType,resolve(parentValue,args,request) {
return thisResult;
}
},userThat: {
type: UserType,args: {
thatArgs: { type: new GraphQLNonNull(GraphQLString) },},resolve: (parentValue,arg,request) => {
return thatResult;
},
解决方法
我通常这样做:
// user.js
const User = new GraphQLObjectType({ ... });
const queryFields = {
userThis: {
type: UserType,resolve(parentValue,args,request) {
return thisResult;
}
},};
const mutationFields = { ... };
module.exports = { User,queryFields,mutationFields };
// RootQueryType.js
// rename queryFields to userQueryFields as we might want to import queryFields
// from many different modules
const { queryFields: userQueryFields } = require('./modules/user.js');
const RootQueryType = new GraphQLObjectType({
name: 'RootQueryType',fields: {
...userQueryFields,},});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。