Могу ли я запросить базу данных 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
.