Apollo Upload утечка памяти при большой загрузке - PullRequest
0 голосов
/ 24 марта 2020

У меня есть express сервер для загрузки файлов. Когда я загружаю большое количество файлов в течение одного сообщения, я получаю следующее сообщение:

MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGINT 
listeners added to [process]. Use emitter.setMaxListeners() to increase limit

Как я могу это исправить? Я хотел бы разрешить загрузку большого количества файлов одновременно.

У меня есть следующая мутация

    uploadFiles(
      files: [Upload]
    ): Boolean

Мой преобразователь

await Promise.all(
        files.map(async (file: any) => {
          const { createReadStream, filename, mimetype } = await file;
          return new Promise(res =>
            createReadStream()
              .pipe(createWriteStream(`${process.env.DESTINATION}/${filename}`))
              .on("close", res),
          ).catch(err => console.log("err saving: ", err));
        }),
      );

Спасибо

1 Ответ

0 голосов
/ 24 марта 2020

Вы должны убедиться, что ваше Обещание отклонено, если во время записи файла произошла ошибка:

return new Promise((resolve, reject) =>
  createReadStream()
    .pipe(createWriteStream(`${process.env.DESTINATION}/${filename}`))
    .on('close', resolve),
    .on('error', reject)
)
...