получил «Neo.ClientError.Cluster.NotALeader» в узле js с использованием neo4j-ha-bolt-driver

#node.js #neo4j #neo4j-driver

#node.js #neo4j #neo4j-драйвер

Вопрос:

Я использую модуль neo4j-ha-bolt-driver для подключения к кластеру neo4j. Я подключился к neo4j и попробовал запрос на обновление, но получил «Neo4jError: операции записи не разрешены непосредственно в этой базе данных. Записи должны проходить через лидер. Роль этого сервера: ПОСЛЕДОВАТЕЛЬ «. Есть идеи, как это решить?

 var Neo4jHA = require("neo4j-ha-bolt-driver");
const servers = [
    ["http://neo4j-core1", "bolt://neo4j-core1"],
    ["http://neo4j-core2", "bolt://neo4j-core2"],
    ["http://neo4j-core3", "bolt://neo4j-core3"],
    ["http://neo4j-core4", "bolt://neo4j-core4"],
    ["http://neo4j-core5", "bolt://neo4j-core5"],
];
const auth = { user: "user", pass: "pass" };
const strategy = Neo4jHA.HAStrategies.roundRobin;
const rwConfig = Neo4jHA.HAReadWrite.all;
const checkInterval = 500;
let time = timestamp('YYYY-MM-DD hh:mm:ss.iii');
const driver = new Neo4jHA(
    servers,
    { auth, strategy, rwConfig, checkInterval },
    (readyCallback) => {
        session = driver.session(true);
        session.run("match (n:student) where n.student_id= 3 set n.time= '"   time   "'")
            .subscribe({
                onCompleted: function () {
                    console.log('updated')
                },
                onError: function (err) {
                    console.log(err)
                }
            })
    });
  

Ответ №1:

Последняя версия пакета neo4j-ha-bolt-driver выпущена 4 года назад. За это время многое изменилось, и неудивительно, что 4-летний пакет работает не так, как ожидалось.

Я бы посоветовал вам использовать официальный драйвер Neo4j JS: https://github.com/neo4j/neo4j-javascript-driver

Комментарии:

1. Спасибо за информацию. Я уже пользовался этим драйвером раньше. Но я хотел подключиться к кластеру, и я не нашел способа обойти это.