【问题标题】:How do should I approach a local server in conjunction with graphQL schemas?我应该如何将本地服务器与 graphQL 模式结合使用?
【发布时间】:2019-08-04 21:13:30
【问题描述】:

(目前不使用 Apollo)

所以我有 server.js:

let graphqlHTTP = require('express-graphql');
... // (other graphQL setup)
let users = []; // or any DB solution here

const {
    UserType,
    UserFactory
} = require('./schema/typeDef.js');
const { QueryType } = require('./schema/query.js');
... // similar imports
// other server declarations

例如,我有 typeDef.js:

const UserType = new GraphQLObjectType({
    name: 'User',
    fields: {
        id: { type: new GraphQLNonNull(GraphQLInt) },
        username: { type: new GraphQLNonNull(GraphQLString }
    }
});

const UserFactory = function(username, id) {
    return {username: username, id: id};
};

module.exports = { UserType, UserFactory };

问题是,我希望能够将 UserType 添加到 server.js 中的数据库(在此代码示例中为 users 数组);但当然,typeDef.js 无权访问 server.js 中声明的数据库。

我最初将文件分开是因为我不希望 server.js 的架构代码过于臃肿。

我应该怎么做?谢谢!

【问题讨论】:

    标签: graphql graphql-js express-graphql


    【解决方案1】:

    如果你来到这片圣地没有得到答案,我有一个给你。按照this link 中的指南进行操作。

    本质上,使用 mongoose 创建一个 db,将其导出,然后使用不同文件夹中的 index.js 将它们拼接在一起。解析器将位于与类型不同的文件夹中,每个都有自己的 index.js。

    您现在可以通过要求 db 模块来访问解析器中的 db 方法。请注意,您不需要 babel,而且我发现 cors 会导致问题(因此,如果它也导致您出现问题,您可能需要删除它)。

    【讨论】:

      猜你喜欢
      • 2018-01-31
      • 2020-12-21
      • 2019-09-09
      • 2012-07-30
      • 2019-01-18
      • 2013-10-05
      • 2010-11-27
      • 2020-02-27
      • 2012-03-24
      相关资源
      最近更新 更多