Я создал базу данных geohash neo4j для данных такси Нью-Йорка. Теперь следующий шаг - визуализировать его на карте, для этого я выбрал Leaflet в качестве библиотеки Javascript. со статическими данными я могу построить данные геохеша в Leaflet:
но теперь я хочу запросить эти данные из базы данных 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.info(result);
})
.fail(function(error){
console.info(error.statusText);
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Можно запросить Neo4j из клиентского Javascript с помощью Драйвер Neo4j для JavaScript.
Я использовал это в нескольких проектах.
Вы можете загрузить драйвер и включить его в свой HTML-файл, например:
<script src = "lib/browser/neo4j-web.min.js"></script>
Или просто используйте ссылку CDN, например:
<script src = "https://unpkg.com/[email protected]/lib/browser/neo4j-web.min.js"></script>
Я нахожу решение:
сначала URL-адрес базы данных: «http: // локальный: 7474 / БД / данные / транзакция / фиксация», а не «http: // локальный: 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.info(result);
})
.fail(function(error){
console.info(error.statusText);
});
Ответ Раджендры Кадама правильный.
Для начала вам необходимо установить 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.