Как се приема едновременно файл и текст от потребител?
Здравейте, сблъсках се с проблем, който не мога да реша от последата лекция и това е да добавя опцията на потребителя да прати файл едновременно с подаването на данни за TODO task.
Знам как да приема файл с multiparty модула, но не знам как едновременно да прочета файла и нужния текст (todo title & todo description), някой може ли да ми даде насоки?
Същия въпрос зададох в stackoverflow, ако искате да го видите там.
https://stackoverflow.com/questions/39894470/how-to-send-and-receive-multipart-data-in-node-js
Ето HTML-a, който ползвам.
http://pastebin.com/W9TVy4An
Всъщност имам else, просто не съм го добавил. Мисълта ми е, че като влезе в този else не знам как да достъпя todoTitle. Мога да сложа проверка if (part.name === 'todoname') и то ще влезе, но от там нататък не знам как да достъпя стойността, която е изпратена.
За mkDirSync си абсолютно прав, мерси за което.
Относно ascii-то, това е съвсен отделна тема, понеже с 'binary' и дори 'utf-8' излиза корумпиран файла. Както е показано, save-ването на файл си работи съвсем точно.
Като влезе в else-a си логни part-a и виж какво съдържа. Предполагам е обект, с който пристига и value-то на field-овете. А относно binary не може да излиза corrupted. Получаваш данни с binary encoding, следователно ги записваш с binary encoding. Eдинствения вариант за омазване е с file extension-ите, които зависят от това какво set-неш като path на fs (първият параметър, който приема при writeFile).
Ами, маняк, първо защо ползваш евентите като не си наясно толкова още с нещата?
Сети ли се да console.log-неш `part`, за да видиш освен `.name` и `.filename` какво още има? То е stream, ясно че ще има доста неща.
Показаните example-и в README-то не ти ли стигат за схващане на логиката? Отделно, хубаво - работи с events/streams, но освен `part` ти се emit-ват и `field` / `file` евентите. Погледни пример как съм го handle-нал тук, който пакет ползва `formidable` което е оригиналния код на `multiparty` (multiparty e fork).
Извинете, ако нещо се засягате. Не хейтя и не спамя, опитвам се да насочвам. :)
Не бях обърнал внимание за emit-ването на field и file.
Мерси, че ме избави от грозните проверки. :)
Ползвам евенти, защото това ми беше показано на курса. Вместо директно да питаш защо, щеше да е някак си по-полезно да ми дадеш алтернатива, която мога да разуча и използвам.
Иначе, естествено, че логнах part преди да пиша тука.
http://pastebin.com/3bn52LB5 Никъде не намирам value-то, което специално за този request трябва да е "6-2"
Сега забелязох, че има fields в readme-то на multiparty и там се съдържат стойностите, които търся. Благодаря за помощта. :)