我该如何与graphQL模式一起使用本地服务器?

问题描述 投票:0回答:1

(目前未使用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中的DB(在此代码示例中为users数组);但是,当然,typeDef.js无法访问server.js中声明的DB。

我最初将文件分开,因为我不希望server.js过于膨胀模式代码。

我该怎么办呢?谢谢!

graphql graphql-js express-graphql
1个回答
0
投票

如果你没有回答来到神圣的土地,我会为你准备一个。按照this link中的指南进行操作。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.