Могу ли я запросить базу данных neo4j с помощью Javascript?

Я создал базу данных geohash neo4j для данных такси Нью-Йорка. Теперь следующий шаг - визуализировать его на карте, для этого я выбрал Leaflet в качестве библиотеки Javascript. со статическими данными я могу построить данные геохэш в Leaflet:

но теперь я хочу запросить эти данные из базы данных 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);
        });

3 ответа

Решение

Я нахожу решение:

Сначала 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);
            });

Можно запросить Neo4j из клиентского Javascript с помощью драйвера Neo4j для JavaScript.

Я использовал это в нескольких проектах.

Вы можете скачать драйвер и включить в свой 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>

Ответ Раджендры Кадам правильный.

Сначала нужно установить neo4j-driverпо:

      npm install neo4j-driver

в каталоге, вероятно, на один уровень выше, чем каталог вашего сервера.

Затем нужно ввести в 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.

Другие вопросы по тегам