2017-06-21 48 views
0

对于我的nodejs应用程序,我使用neo4j 3.2.0社区版作为主数据库,我想创建一个Graphql API服务器并在此api服务器和neo4j db之间建立连接。我看着官方graphql-neo4j-graph-database-integration (https://github.com/neo4j-graphql/neo4j-graphql),但根据它的文档说它只适用于3.0和3.1。如何在版本3.2.0的graphql server和neo4j数据库之间建立连接?

那么,任何人都可以请解释我该如何建立graphql服务器和neo4j db(3.2.0社区版)之间的连接?

PS。我甚至研究过apollo express-graphql服务器和他们的文档,我明白如何创建一个快速Web服务器的graphql端点,但我无法掌握的是,即使我创建了apollo express-graphql服务器,我应该如何将它与neo4j集成,因为graphql似乎没有连接器目前的neo4j?

请让我知道如果我在这里关于neo4j graphql的体系结构丢失的东西,并在nodejs环境中表示。 (提前致谢)

回答

0

neo4j-graphql库允许您嵌入Cypher查询以用作GraphQL解析器,这在开发支持Neo4j的GraphQL服务器时确实非常有用。但是,你并不需要它来达到同样的结果。相反,你所要做的只是编写能够与Neo4j交谈的解析器,并且只要你的平台(Node.js)具有合适的驱动程序(它确实如此) - 你就可以开始。

E.g.一个非常简单的模式,编程定义(即不是通过IDL)看起来是这样的:

let schema = new GraphQLSchema({ 
    query: new GraphQLObjectType({ 
    name: 'RootQueryType', 
    fields: { 
     numberOfRegisteredUsers: { 
     type: GraphQLInt, 
     resolve: function() { 
      return neo4j.queryForTheNumberOfUsers(); //this is your custom resolution logic 
     } 
     } 
    } 
    }) 
}); 

正如你所看到的,除了通常的Neo4j的驱动程序,你不需要任何额外的东西。没有特殊的连接器或任何GraphQL特定的位。

+0

到目前为止,我创建了apollo graphql express server.Do我需要在我用于创建graphql端点的my ** server.js **文件中使用neo4j驱动程序吗?我应该在哪里添加密码查询(从我的数据库中获取数据)?比方说,我有2个节点“学生”和“课程”,一个学生可以有多个课程,那么我应该怎么做才能将独特的学生独特的课程? (PS。我很困惑**关于哪个js文件应该使用官方驱动程序,哪些文件应该添加密码查询?**我是neo4j和graphql中的新手,所以plz在这种情况下帮助我 –

+0

@CodeReactor我不是一个Node.js开发者,所以不能帮你提供这些细节,相反,我建议你开一个新的问题并发布到目前为止的代码 – kaqqao

+0

@CodeReactor但是一个合理的假设是你使用驱动程序发出查询,不需要?因此,您需要在您正在编写解决方案逻辑的地方使用这个简单的函数来发出一个简单的查询,而无需使用任何GraphQL。当它工作时,将其用作解析器。 – kaqqao

相关问题