(当前未使用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过多使用架构代码。
我应该怎么做?谢谢!
答案 0 :(得分:0)
如果您没有答案来到圣地,我会为您准备的。请遵循this link中的指南。
基本上,用猫鼬创建一个数据库,将其导出,并在不同文件夹中使用index.js将它们缝合在一起。解析器将位于与类型不同的文件夹中,每个文件夹都具有自己的index.js。
您现在可以通过需要db模块来访问解析器中的db方法。请注意,您不需要babel,而且我发现cors会引起问题(因此如果您也引起问题,则可能要删除它)。