Я создаю приложение для загрузки файлов, чтобы ознакомиться с концепцией потоков. Я пытаюсь превратить список файлов или большие двоичные объекты в поток, затем загрузить его на сервер и сохранить в файловой системе.
У меня не было проблем с реализациями веб-интерфейса и внутреннего интерфейса соответственно, но у меня трудное время, соединяющее два. Моя основная проблема заключается в том, что я не понимаю разницу между Web Streams API и Node.js Streams API . Мне удалось превратить большие двоичные объекты выбранных входных файлов в браузере в Web ReadableStream
, но пакеты, которые я пробовал (axios
для запросов, socket.io
и socket.io-stream
для WebSocket), принимают только версию потока Node.js как аргументы. Я также не мог передать Web ReadableStream в Node.js Writeable или Duplex Stream. Имена методов также различаются (например: pipeTo
или pipeThrough
в веб-API и pipe
в Node.js API).
Я знаю, что существуют различия в реализации между Node.js и браузерами, но наивно Я думал, API-интерфейсы будут похожи. Можно ли как-то тривиально конвертировать между веб-потоками и Node.js потоками с просмотром, и мне чего-то не хватает? Стоит ли использовать API веб-потока поверх stream-browserify
?