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

时间:2019-01-14 19:17:07

标签: javascript ajax neo4j neo4j-driver

我已经为NYC Taxi数据创建了geohash neo4j数据库。 现在,下一步是在地图上可视化它,因为我选择了Leaflet作为Javascript库。 使用静态数据,我可以在Leaflet中绘制geohash数据:

geohash-leaflet

但是现在我想从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);
        });

3 个答案:

答案 0 :(得分:0)

可以使用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>

答案 1 :(得分:0)

我找到了解决方法:

首先,数据库的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);
            });

答案 2 :(得分:0)

Rajendra Kadam 的回答是正确的。

首先您需要通过以下方式安装 neo4j-driver

npm install neo4j-driver

在一个可能比您的 web/ 服务器的 node.js 目录高一级的目录中。

然后您需要将 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