Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2019 September 05

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
const file = fs.createWriteStream('./file.txt')
   req.pipe(file);

   req.on('end', () => {
     res.json('Successfully uploaded');
   });
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
слать только файл, а не form-data
источник

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
@m03geek не подскажешь еще, как используя реакт отослать txt файл?
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
с фронта напрямую никак
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
коль там фронт замешан, то обрабатывайте форм дату соответственно. по другому - никак
источник

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
@m03geek а как бы вы сделали? Я об обработке такого файла, просто с такими вещами не работал, но вот пришлось, чтобы посоветовали(я об обработке файла)
источник

AR

Artem Rudov in NodeUA - JavaScript and Node.js in Ukraine
Sergey Vats
@m03geek не подскажешь еще, как используя реакт отослать txt файл?
можно попробовать через https://developer.mozilla.org/ru/docs/Web/API/FileReader и в base64 его слать куда надо, а там уже из base64 собрать в файлик и записать куда хочется
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
надо не файл обрабатывать, а запрос распарсить, а если быть точнее то тело запроса. есть модулей куча для этого дела, например https://github.com/mscdex/busboy
источник

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
я правильно понял, перед отправкой, сконвертировать файл в base64, а потом на уровне сервака соьрать файл?
источник

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
если не юзать модули, я видел есть multer
источник

AR

Artem Rudov in NodeUA - JavaScript and Node.js in Ukraine
ну как я понял, пользователь в браузере выбираете файл для загрузки, он через выше указанное апи может быть получен, на выходе получаете base64, дальше шлете на сервер, если там нода, используете Buffer потом запихиваете в fs для записи
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Sergey Vats
я правильно понял, перед отправкой, сконвертировать файл в base64, а потом на уровне сервака соьрать файл?
это конечно вариант, но крайне рагульный
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Sergey Vats
если не юзать модули, я видел есть multer
это как так можно одновременно "не юзать модули" и "есть multer"?

multer - мидлварь, busboy - парсер и multer собственно пользует busboy
источник

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
@m03geek я случайно отправил, хочу не используя модули это реализовать, знаю что это можно изи сделать используя multer, но должны же быть нативные штуки. Вот @ArtRudov посоветовал использовать fileReader
источник

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
@ArtRudov спасибо
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Коль "использовать нативные штуки", то никто вам не запрещает написать свой парсер для форм-даты. А передавать на бек файлы в base64, это не "нативные штуки", это костыли.
источник

AR

Artem Rudov in NodeUA - JavaScript and Node.js in Ukraine
Ну я не знаю, что вы конкретно хотите сделать. И просто делаю догадку, особенно, если надо через реакт отправить:)
источник

AR

Artem Rudov in NodeUA - JavaScript and Node.js in Ukraine
Alexander
Коль "использовать нативные штуки", то никто вам не запрещает написать свой парсер для форм-даты. А передавать на бек файлы в base64, это не "нативные штуки", это костыли.
так он же из base64 делать собирается, а не в него закидывать. Он там уже получил, да из base в файлик записал.
источник

SV

Sergey Vats in NodeUA - JavaScript and Node.js in Ukraine
Нужно загрузить файл и отправить на сервак, и на серваке записать в базу
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Artem Rudov
так он же из base64 делать собирается, а не в него закидывать. Он там уже получил, да из base в файлик записал.
так а зачем бинарник перегонять в base64 который мало того что потребует затрат как на клиенте, так и на сервере, так еще вес передаваемого файла увеличится на 30%
источник