使用neo4j JS驱动程序进行套接字挂起

问题描述 投票:4回答:1

所有。我是neo4j的新手,并尝试使用来自node / express的官方JS驱动程序来命中远程(例如非本地)服务器,但不断收到[错误:套接字挂断]代码:'ECONNRESET'错误。代码如下所示:

router.get('/', function(req, res, next) {
  var driver  = neo4j.driver("bolt://ip.address", neo4j.auth.basic("neo4j", "neo4j"));
  var session = driver.session();
  var query   = "MATCH (p:Person {name:'Sally'})-[r:KNOWS]->(f:Person) RETURN f";

  session
    .run(query)
    .then(function(result) {
      result.records.forEach(function(record) {
        console.log(record._fields);
      });
      session.close();
    })
    .catch(function(error) {
      console.log(error);
    });

  driver.close();
});

我已经在bolt和http上尝试了流式传输和promise技术,所有这些都具有相同的结果。远程服务器配置为接受外部连接,我已经通过golang单独验证了连接。

想法?

node.js express neo4j
1个回答
15
投票

感谢Oscar Hane在Github上回答这个问题:

您的问题是您可能在查询完成之前关闭驱动程序。

router.get('/', function(req, res, next) {
  var driver  = neo4j.driver("bolt://ip.address", neo4j.auth.basic("neo4j", "neo4j"));
  var session = driver.session();
  var query   = "MATCH (p:Person {name:'Sally'})-[r:KNOWS]->(f:Person) RETURN f";

  session
    .run(query)
    .then(function(result) {
      result.records.forEach(function(record) {
        console.log(record._fields);
      });
      session.close();
      driver.close();
    })
    .catch(function(error) {
      console.log(error);
      driver.close();
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.