Javascript Node.js SFTP结束连接
我正在使用sh2 sftp客户端模块对多个文件执行sftp get请求。我可以很好地拉取文件,但是当我尝试拉取10个以上的文件时,会出现错误: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
(节点: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)