Javascript 节点写入流挂起

Javascript 节点写入流挂起,javascript,node.js,neo4j,stream,Javascript,Node.js,Neo4j,Stream,此节点脚本挂起在最后一行之后,其中写入了记录:442 这意味着finish事件已触发,但我不知道如何结束整个脚本 const N3 = require('n3'); const fs = require('fs'); const neo4j = require('neo4j-driver').v1; const uri = 'bolt://localhost'; const user = 'neo4j'; const password = 'sms1993662'; const driver

此节点脚本挂起在最后一行之后,其中写入了
记录:442

这意味着
finish
事件已触发,但我不知道如何结束整个脚本

const N3 = require('n3');
const fs = require('fs');
const neo4j = require('neo4j-driver').v1;

const uri = 'bolt://localhost';
const user = 'neo4j';
const password = 'sms1993662';
const driver = neo4j.driver(uri, neo4j.auth.basic(user, password));
const session = driver.session();

let streamParser = N3.StreamParser();

let rdfStream = fs.createReadStream('/Users/simonshapiro/Documents/javascript/rdf_graphlib_js/data/sh.tll')
let number_of_rows = 0;

function DatastoreWriter () {
    let writer = new require('stream').Writable({objectMode: true});
    writer._write = (triple, encoding, done) => {
            console.log(triple);
            const mergePromise = session.run(
                `MERGE (n:Unidentified {id:"${triple.subject}"})`
            );
            mergePromise.then(() => {
                number_of_rows += 1;
                done();
            })
            .catch((e)=>{
                console.log('error', e);
                done();
            });
    }
    return writer
};
const neo4jWriter = new DatastoreWriter();
rdfStream.pipe(streamParser);
streamParser.pipe(neo4jWriter);
neo4jWriter.on('finish', ()=>{
        session.close();
        console.log('records written: ', number_of_rows);
    });
根据,应关闭驱动程序,操作如下:

neo4jWriter.on('finish', ()=>{
  session.close(() => driver.close());
  console.log('records written: ', number_of_rows);
});
进程。退出(0)
。但实际上,您应该找到仍然可用的数据(可能是驱动程序连接),并更优雅地关闭该数据