2017-06-21 47 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

相關問題