Как исправить ошибку MaxListenersExceededWarning?

На моем Node.js http веб-сервере я использую библиотеку ssh2-sftp-клиент для загрузки csv файлов с удаленного SFTP сервера. Возникает ошибка, когда пользователь пытается загрузить несколько файлов, и я не понимаю, как это исправить?

КОД:

router.post('/', (req, res) => {
  const fileName = req.body.file_name

  const remotePath = '/reports/' + fileName

  const localePath = path.join(process.env.HOME || process.env.USERPROFILE, 'Downloads/' + fileName)

  sftp.connect(config.sftpServer, 'on').then(() => {
    sftp.fastGet(remotePath, localePath, {}).then(() => {
      res.header('Content-type', 'text/csv; charset=windows-1251')
      res.sendFile(localePath)
      sftp.end()
    }).catch((err) => {
      sftp.end()
      console.info(err, 'fastGet method error')
    })
  }).catch((err) => {
    sftp.end()
    console.info(err, 'connect method error')
  })
})

ОШИБКА:

Error: Failed to connect to server: (SSH) Channel open failure: open failed
    at client.sftp (/node_modules/ssh2-sftp-client/src/index.js:456:18)
    at /node_modules/ssh2/lib/client.js:867:14
    at SSH2Stream.onFailure (/node_modules/ssh2/lib/client.js:1211:5)
    at Object.onceWrapper (events.js:277:13)
    at SSH2Stream.emit (events.js:189:13)
    at parsePacket (/node_modules/ssh2-streams/lib/ssh.js:3709:10)
    at SSH2Stream._transform (/node_modules/ssh2-streams/lib/ssh.js:671:13)
    at SSH2Stream.Transform._read (_stream_transform.js:190:10)
    at SSH2Stream._read (/node_modules/ssh2-streams/lib/ssh.js:253:15)
    at SSH2Stream.Transform._write (_stream_transform.js:178:12) 'connect method error'
Error: Failed to connect to server: (SSH) Channel open failure: open failed
    at client.sftp (/node_modules/ssh2-sftp-client/src/index.js:456:18)
    at /node_modules/ssh2/lib/client.js:867:14
    at SSH2Stream.onFailure (/node_modules/ssh2/lib/client.js:1211:5)
    at Object.onceWrapper (events.js:277:13)
    at SSH2Stream.emit (events.js:189:13)
    at parsePacket (/node_modules/ssh2-streams/lib/ssh.js:3709:10)
    at SSH2Stream._transform (/node_modules/ssh2-streams/lib/ssh.js:671:13)
    at SSH2Stream.Transform._read (_stream_transform.js:190:10)
    at SSH2Stream._read (/node_modules/ssh2-streams/lib/ssh.js:253:15)
    at SSH2Stream.Transform._write (_stream_transform.js:178:12) 'connect method error'
Error: Failed to connect to server: (SSH) Channel open failure: open failed
    at client.sftp (/node_modules/ssh2-sftp-client/src/index.js:456:18)
    at /node_modules/ssh2/lib/client.js:867:14
    at SSH2Stream.onFailure (/node_modules/ssh2/lib/client.js:1211:5)
    at Object.onceWrapper (events.js:277:13)
    at SSH2Stream.emit (events.js:189:13)
    at parsePacket (/node_modules/ssh2-streams/lib/ssh.js:3709:10)
    at SSH2Stream._transform (/node_modules/ssh2-streams/lib/ssh.js:671:13)
    at SSH2Stream.Transform._read (_stream_transform.js:190:10)
    at SSH2Stream._read (/node_modules/ssh2-streams/lib/ssh.js:253:15)
    at SSH2Stream.Transform._write (_stream_transform.js:178:12) 'connect method error'
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
260
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец я нашел проблему. Вместо метода on вам нужно использовать метод once.

sftp.connect(config.sftpServer, 'once').then(() => {
    // CODE
}

Другие вопросы по теме