gpt4 book ai didi

javascript - Node.js SFTP 结束连接

转载 作者:行者123 更新时间:2023-12-03 02:43:29 25 4
gpt4 key购买 nike

我正在使用 sh2-sftp-client 模块对多个文件执行 sftp get 请求。我可以很好地提取文件,但是当我尝试提取超过 10 个文件时,出现错误:(node:4068) 警告:检测到可能的 EventEmitter 内存泄漏。添加了 11 个准备好的听众。使用emitter.setMaxListeners()增加限制错误:(SSH) channel 打开失败:打开失败

我做了一些搜索,通过增加 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())

关于javascript - Node.js SFTP 结束连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48211033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com