-1

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

geohash 传单

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

那么是否可以这样做或仅使用服务器端脚本语言(node.js,php ...)?

更新

我在这里发现了一个类似的问题,解决方案是使用 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);
        });
4

3 回答 3

1

可以使用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>
于 2019-01-15T14:03:46.337 回答
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);
            });
于 2019-01-15T17:34:01.953 回答
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

于 2021-04-01T05:42:10.210 回答