Javascript Node.js SFTP结束连接

Javascript Node.js SFTP结束连接,javascript,node.js,sftp,Javascript,Node.js,Sftp,我正在使用sh2 sftp客户端模块对多个文件执行sftp get请求。我可以很好地拉取文件,但是当我尝试拉取10个以上的文件时,会出现错误:(节点:4068)警告:可能检测到EventEmitter内存泄漏。增加了11名准备就绪的听众。使用emitter.setMaxListeners()增加限制和错误:(SSH)通道打开失败:打开失败 我正在进行一些搜索,通过增加EventEmitter:require('events')。EventEmitter.defaultMaxListeners=0

我正在使用sh2 sftp客户端模块对多个文件执行sftp get请求。我可以很好地拉取文件,但是当我尝试拉取10个以上的文件时,会出现错误:
(节点:4068)警告:可能检测到EventEmitter内存泄漏。增加了11名准备就绪的听众。使用emitter.setMaxListeners()增加限制
错误:(SSH)通道打开失败:打开失败

我正在进行一些搜索,通过增加EventEmitter:
require('events')。EventEmitter.defaultMaxListeners=0。我现在知道这不是解决这个问题的正确方法,因为我需要在每次请求后关闭连接。但是我不确定在哪里添加
sftp.end

route.js

    // Connect to server
    sftp.connect(config).then(() => {  
        //Grab file and set it as a readable stream
        sftp.get(fileName, "false", null).then((data) => {
            // This is what the file name will be
            res.setHeader('Content-disposition', 'attachment; filename=' + fileName);
            // Setting headers to correct MIME type to the header of the response object
            res.setHeader('Content-Type', 'audio/wav');
            //Pipe the respose
            data.pipe(res);
            // End connection?
            sftp.end();
        });
    }).catch((err) => {
            console.log(err, 'catch error');
    }); 

当没有更多数据时,由于数据是读取流,您可以执行以下操作:


data.on('end',()=>sftp.end())

我尝试在
data.pipe(res)下面添加它
但是我仍然收到了相同的消息,错误是:(SSH)Channel open failure:open failed
。您应该将它添加到
data.pipe(res)