如何在Neo4J Node.Js驱动程序中打开/关闭驱动程序和会话?

时间:2018-03-04 20:28:19

标签: javascript node.js neo4j neo4j-javascript

我正在使用Neo4J Javascript Driver从我的Node.Js应用程序查询数据库。

假设我使用以下构造向Neo4J发送多个查询(循环遍历它们)。

我何时需要关闭session,何时需要关闭driver

我应该在每个周期结束时(如下所示)或在所有周期完成后进行吗?如果是后者,我该怎么做?

另一个问题 - 我真的要关闭driver吗?如果我的应用持续运行怎么办?如果由于某些错误而退出并重新启动会怎么样?

var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "neo4j"));

var session = driver.session();

var transactionQueries = ['MATCH ...', 'MATCH ...'];

for (var key in transactionQueries) {
session
.run(transactionQueries[key])
.subscribe({
onNext: function (record) {
  console.log(record.get('name'));
},
onCompleted: function () {
  session.close();
},
onError: function (error) {
  console.log(error);
}
});
}


driver.close();

1 个答案:

答案 0 :(得分:0)

我认为您可以保持连接(驱动程序),但应按照neo4j-javascript-driver上的说明打开和关闭会话

// Create a session to run Cypher statements in.
// Note: Always make sure to close sessions when you are done using them!
var session = driver.session()

session
  .run('MERGE (james:Person {name : $nameParam}) RETURN james.name AS name', {
    nameParam: 'James'
  })
  .then(result => {
    result.records.forEach(record => {
      console.log(record.get('name'))
    })
  })
  .catch(error => {
    console.log(error)
  })
  .then(() => session.close())

其他人以为我建议您看看是否有一个OGM可以帮助您更好地像neo4j-node-ogm这样编码

相关问题