我可以用 Javascript 查询 neo4j 数据库吗?

Can I query the neo4j database with Javascript?

我为纽约出租车数据创建了一个 geohash neo4j 数据库。 现在下一步是在地图中将其可视化,为此我选择了 Leaflet 作为 Javascript 库。 使用静态数据,我可以在 Leaflet 中绘制 geohash 数据:

但现在我想从 neo4j 数据库中查询该数据并呈现它。

那么是否可以做到这一点,或者只能使用服务器端脚本语言(node.js,php...)?

更新

我发现了一个类似的问题 here ,解决方案是使用 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 link,例如:

<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" and not "http://localhost:7474”。

然后在更改后我在控制台中遇到未经授权的错误,这意味着我需要将我的 user/password 添加到我的 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.