【发布时间】:2021-02-18 06:02:15
【问题描述】:
根据我的要求,我必须在每次函数调用时创建新的schema。
这确实有效,但我担心它的性能。
我的代码:
app.post('/', (req, res)=> {
const {query, data} = req.body;
doOperations(data, 'multiValueSearch', docs => {
const RootQueryType = GraphQLObjectType({
name: "RootQuery",
fields: {
users: {
type: GraphQLList(UserType),
resolve: ()=> docs
}
}
});
const schema = new GraphQLSchema({
query: RootQueryType
});
graphql(schema, query).then(result => res.json(result)));
});
});
doOperations功能在用户搜索好友时随时可用。
所以在每次搜索中都会调用这个doOperations。
这是一个问题还是不关心是否会影响 graphql 性能?
为什么我必须这样做?因为 docs 返回基于 data 我传递给 db。
【问题讨论】:
-
query来自哪里?callback来自哪里?doOperations是如何定义的(它有什么作用)?所有这些代码(doOperations()调用)在哪里?看起来很奇怪 - 通常操作是在模式的解析器函数中完成的。 -
@Bergi,查询来自使用
req.body.query的客户端,我在app.get('/', (req, res) => {doOperations()})内调用doOperations; -
... 或者如何使用?为什么?显示/描述上下文......看起来很奇怪......没有graphql服务器的graphql响应?
-
@xadm,我刚刚发布了我的一部分代码,以避免在这里出现我们不需要的内容。我只需要知道这种方式是坏方法还是好方法。
-
@Muhammad 除此之外,您还有其他 graphql 端点吗?您的架构真的只有一个顶级字段吗?
标签: javascript node.js mongodb graphql graphql-js