graphql - 将 graphql 解析器文件拆分为单独的文件
问题描述
我正在使用 GraphQL,并且有一个如下所示的resolvers.js文件:
const User = require("../models/User");
const Post = require("../models/Post");
module.exports = {
Query: {
async users(){...},
async user(){...},
async posts(){...},
async post(){...},
},
User: {...},
Post: {...},
Mutation: {
createUser(){...},
login(){...},
createPost(){...},
},
}
但是如果我有更多的模型、查询和突变,文件会很长。如何将其拆分为单独的文件?一种用于用户查询和突变,一种用于帖子等。或者那不可能?也许有一种方法可以将它与schema.js文件结合起来?这样我也可以拆分模式并将用户的模式/解析器放入文件中。我仍然是编码的初学者。
解决方案
实际上,我找到了一种非常简单的方法。在 schema.js 中,我可以使用 lodash merge 来组合多个解析器文件,而对于 typedef,我只使用一个数组。这样我可以将所有内容拆分为单独的文件。
const { merge } = require("lodash");
module.exports = makeExecutableSchema({
typeDefs: [typeDefs, userTypeDefs],
resolvers: merge(resolvers, userResolvers)
});
推荐阅读
- php - 我正在尝试通过邮递员发送数据,但 post 方法什么也没发送
- neural-network - 使用推文数据设计用于情绪分类的神经网络
- python - Visual Code Code Runner 不在虚拟环境中运行代码
- android - 为安卓和iPhone开发移动应用程序时如何管理图片和图标
- webgl - 3D 模型上的 webGL 等高线颜色图
- php - WordPress子主题:删除主题格式
- mongodb - 如何将文档中的数组元素投影到特定位置
- pyspark - 将“[1, 2, 3]”之类的字符串转换为数组
- android - java.lang.ClassCastException:com.stars.learnyourhome.DataModel.Subject 无法转换为 java.util.List
- android - Android Studio 错误:每次我尝试在手机上运行应用程序时构建都会失败