【问题标题】:How to establish connection between graphql server and neo4j database of version 3.2.0 ?如何在graphql服务器和3.2.0版本的neo4j数据库之间建立连接?
【发布时间】:2017-11-24 22:30:15
【问题描述】:

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

那么,谁能解释一下如何在graphql服务器和neo4j db(3.2.0社区版)之间建立连接?

PS。我什至查看了 apollo express-graphql 服务器及其文档,我了解如果我创建一个快速 Web 服务器可以如何在快速 Web 服务器中使用 graphql 端点,但我无法掌握的是 即使我创建了一个 apollo express -graphql 服务器,我应该如何将它与 neo4j 集成,因为 graphql 似乎没有用于 neo4j 的连接器?

如果我在这里遗漏了有关使用 neo4j 和在 nodejs 环境中表达的 graphql 架构的内容,请告诉我。 (提前致谢)

【问题讨论】:

    标签: node.js neo4j graphql


    【解决方案1】:

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

    例如一个非常简单的模式,以编程方式定义(即不通过 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 特定的位。

    【讨论】:

    • 到目前为止,我创建了 apollo graphql express server。我需要在我用来创建 graphql 端点的 server.js 文件中使用 neo4j 驱动程序吗?我应该在哪里添加密码查询(从我的数据库中获取数据)?比方说,我有 2 个节点“学生”和“课程”,1 个学生可以有多个课程,那么我应该怎么做才能获取唯一的学生独特的课程? (PS。我很困惑我应该在哪个js文件中使用官方驱动程序,以及我应该在哪个文件中添加密码查询?我是neo4j和graphql的新手,所以请帮助我本案
    • @CodeReactor 我不是 Node.js 开发人员,因此无法为您提供这些细节方面的帮助。相反,我建议您打开一个新问题并发布您目前拥有的代码。
    • @CodeReactor 但一个合理的假设是您使用驱动程序发出查询,不是吗?因此,您在编写解析逻辑的地方都需要两者。制作一个简单的函数来发出一个简单的查询,而不需要任何 GraphQL。当它工作时,将其用作解析器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2012-04-24
    • 2011-05-20
    相关资源
    最近更新 更多