@MelancholicTheDie
PHP Developer

NodeJS Как записать в Buffer полученные данные из busboy?

Добрый вечер.

Использую для получения данных(картинки) busboy.

Получаю данные так:

var buffer = Buffer.allocUnsafe(filesize);
req.recvSize = 0;  
 file.on('data', function (data) {
            buffer.write(data,req.recvSize,data.length);
            req.recvSize += data.length;
 });


На выходе такая вот ошибка:
buffer.js:761
return this.utf8Write(string, offset, length);
^

TypeError: Argument must be a string
at TypeError (native)
at Buffer.write (buffer.js:761:21)

Вариант с concat мне не подходит, так как я изначально знаю размер файла и далее мне не нужны лишние действия(из-за этого и решил сразу писать в буффер).

Как можно решить такую ошибку или как правильнее будет принимать данные?
  • Вопрос задан
  • 312 просмотров
Пригласить эксперта
Ответы на вопрос 1
можно Buffer.copy использовать вместо write.
https://nodejs.org/dist/latest-v6.x/docs/api/buffe...

или file-stream переключить в режим, когда он будет utf8 строки через событие "data" отдавать.
https://nodejs.org/dist/latest-v6.x/docs/api/strea...

Upd: плохая идея картики utf8 строками читать. поэтому -> buffer.copy()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы