簡體   English   中英

我可以使用 Javascript 查詢 neo4j 數據庫嗎?

[英]Can I query the neo4j database with Javascript?

我為紐約出租車數據創建了一個 geohash neo4j 數據庫。 現在下一步是在地圖中可視化它,為此我選擇 Leaflet 作為 Javascript 庫。 使用靜態數據,我可以在 Leaflet 中繪制 geohash 數據:

geohash-傳單

但現在我想從 Neo4j 數據庫中查詢該數據並呈現它。

那么有可能做到這一點還是只能使用服務器端腳本語言(node.js,php...)?

更新

我在這里找到了一個 simlair 問題,解決方案是使用 ajax 查詢數據庫,但是它對我不起作用,我在控制台中收到“錯誤”:

var body = JSON.stringify({
            statements: [{
                statement: 'MATCH (n) RETURN count(n)'
            }]
        });
   $.ajax({
        url: "http://localhost:7474",
        type: "POST",
        data: body,
        contentType: "application/json"
    })
        .done(function(result){
            console.log(result);

        })
        .fail(function(error){
            console.log(error.statusText);
        });

可以使用Neo4j Driver for JavaScript從客戶端 Javascript 查詢 Neo4j。

我在幾個項目中使用過它。

您可以下載驅動程序並將其包含在您的 HTML 文件中,例如:

 <script src="lib/browser/neo4j-web.min.js"></script>

或者只使用 CDN 鏈接,如:

<script src="https://unpkg.com/neo4j-driver@X.Y.Z/lib/browser/neo4j-web.min.js"></script>

我找到了解決方案:

首先數據庫的 url 是:“ http://localhost:7474/db/data/transaction/commit ”而不是“ http://localhost:7474 ”。

然后在更改后我在控制台中遇到未經授權的錯誤,這意味着我需要將我的用戶/密碼添加到我的 ajax 調用中,這是由一個名為 beforeSend 的函數完成的,如下所示:

beforeSend: function (xhr) {
                xhr.setRequestHeader ("Authorization", "Basic " + btoa("neo4j"+ ":" + "your_neo4j_password"));
            }}

所以最終的 Ajax 解決方案是:

$.ajax({
            url: "http://localhost:7474/db/data/transaction/commit",
            type: "POST",
            data: body,
            contentType: "application/json",
            beforeSend: function (xhr) {
                xhr.setRequestHeader ("Authorization", "Basic " + btoa("neo4j"+ ":" + "password"));
            }}
            )
            .done(function(result){
                 console.log(result);
            }) 
            .fail(function(error){
                console.log(error.statusText);
            });

Rajendra Kadam 的回答是正確的。

首先,您需要通過以下方式安裝neo4j-driver

npm install neo4j-driver

在一個可能比node.js服務器的web/目錄高一級的目錄中。

然后你需要把neo4j-web.min.js放到web/目錄,你的客戶端 JavaScript 可以在那里加載。

然后在 HTML 中添加以下行:

 <script src="js/neo4j-web.min.js"></script>

文件neo4j-web.min.js位於node_modules/neo4j-driver/lib/browser/

然后在您的客戶端 JavaScript 中,輸入:

var driver = neo4j.driver(
    'neo4j://localhost',
    neo4j.auth.basic('neo4j', 'password') );

那么你已經成功打開了驅動程序。 (您可能需要正確設置密碼,否則會出現身份驗證錯誤。)

請注意,您不需要在您的客戶端JavaScript這行:

var neo4j = require('neo4j-driver');

因為它用於服務器端node.js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM