Как мне обратиться к локальному серверу в сочетании со схемами graphQL? - PullRequest
0 голосов
/ 14 марта 2019

(в настоящее время не использует 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 в БД (в этом примере кода, массив users) в server.js;но, конечно, typeDef.js не имеет доступа к объявленной БД в server.js.

Сначала я разделил файлы, потому что не хотел, чтобы server.js был слишком раздутым с помощью кода схемы.

Как мне поступить?Спасибо!

1 Ответ

0 голосов
/ 20 марта 2019

Если вы пришли в священную страну без ответа, у меня есть один для вас.Следуйте инструкциям в по этой ссылке .

По сути, создайте базу данных с помощью mongoose, экспортируйте ее и используйте index.js в разных папках, чтобы соединить их вместе.Резолверы будут находиться в папке, отличной от типов, каждый со своим собственным index.js.

Теперь вы можете обращаться к методам db в резольверах, если для этого требуется модуль db.Обратите внимание, что вам не нужен babel, и я обнаружил, что коры вызывают проблемы (так что вы можете удалить их, если это тоже вызывает проблемы).

...