我正在使用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();
答案 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
这样编码