Как преобразовать ReadableStream в ReadStream в NodeJS?
Я использую nodemailer и pdfmake для создания PDF-файла и отправки его во вложениях электронной почты. У меня не так много опыта работы с файлами в NodeJS, и я не могу заставить его работать.
См. пример , где файл сохранен. Поскольку я проверил типы, возвращает расширение
NodeJS.ReadableStream
.
В nodemailer я могу включать вложения как
Stream
или См. документацию.
Однако я не могу отправить вложение, не сохранив его и не указав путь к файлу.
Я попытался предоставить возвращенное из
createPdfKitDocument
как есть, это приводит к зависанию обещания. Я попытался обернуть его
Readable.from()
, это не сработало. я пытался позвонить
.read()
на результат, и это не привело к зависанию обещания, но pdf не может быть открыт.
Любые идеи, как я могу преобразовать
ReadableStream
к
Readable
, или
Buffer
?
1 ответ
потоки типов используются в старых библиотеках и версиях NodeJS. Вы можете использовать
wrap
метод в
Readable
конвертировать
NodeJS.ReadableStream
в читаемый поток.
const { OldReader } = require('./old-api-module.js');
const { Readable } = require('node:stream');
const oreader = new OldReader(); // will return stream of NodeJS.ReadableStream
const myReader = new Readable().wrap(oreader);
myReader.on('readable', () => {
myReader.read(); // etc.
});
Ссылка: https://nodejs.org/api/stream.html#stream_readable_wrap_stream . Для получения дополнительной информации также обратитесь к https://nodejs.org/api/stream.html#compatibility-with-older-nodejs-versions.