170 похожих чатов

У меня стоит мултер который должен загрузить трек на сервер,

то есть роут выглядит так
router.post("/track/create",
passport.auntificate("jwt", {session: false}), multer.single("track", {maxCount: 1}), trackController.createTrack)
но прикол в том, что мне же сначала создать трек, чтобы правильно создать путь в которой будет храниться трек включив в путь айди трека в базе данных, ну то есть
path.resolve(__dirname, "static", " tracks", track_id, track.mp3)
Но я не могу включить в путь айди трека потому что у меня миддлвар multer стоит до контроллера, как быть, если в контроллере и происходит создание трека?

24 ответов

25 просмотров
21th- Автор вопроса

у меня был вариант ещë поставить миддлвар в конце роута, но получается я должен в контроллере писать next(), а затем стразу отправлять статус код 200, а что если сохранение трека будет неудачным? А ответ на клиент уже отправлен

21th- Автор вопроса

помогите плиз,

https://github.com/expressjs/multer#diskstorage

21th- Автор вопроса
21th- Автор вопроса

помогите🥺

21th- Автор вопроса

звучит как костыль, переименовывать

21th
звучит как костыль, переименовывать

тебе однозначно надо будет работать с файлом, удалить или переместить из /tmp

21th
звучит как костыль, переименовывать

а если б прочитал доку, то увидел бы там это памяти, конечно, скушает больше при загрузке файла, но ты можешь выбрать что делать с файлом после его полной загрузки

21th- Автор вопроса
A Z
а если б прочитал доку, то увидел бы там это памя...

файл в озу будет? Его потом можно удалить?

21th- Автор вопроса

А зачем тебе путь, в котором будет id?

21th- Автор вопроса
John Doe
А зачем тебе путь, в котором будет id?

потому что в этой папке ещë будет и картинка трека, то есть пути будут path.resolve(__dirname, "static", "tracks", "img") path.resolve(__dirname, "static", "tracks", "audio")

Как вариант, имя файла может быть любой другой рандомной строкой. А название трека, id и путь к файлу у тебя будет хранится в бд

использовать uuid

21th- Автор вопроса
John Doe
Как вариант, имя файла может быть любой другой ран...

типа в бд у Track сущности сделать поле imgPath: "/744yuwudyc2i1j/img/u4hsuc6wi2i.jpg" так?

21th- Автор вопроса
21th
типа в бд у Track сущности сделать поле imgPath: "...

Да. Тогда у тебя не будет проблемы шаринга id между сущностью в бд и навзанием файла

21th- Автор вопроса
John Doe
Да. Тогда у тебя не будет проблемы шаринга id межд...

ну там проблема будет энивей, я просто забыл какая проблема, но она там есть, при отправке 2 файлов

21th- Автор вопроса

ну в общем из за того что destination срабатывает 2 раза, потому что я передаю 2 файла: mp3 и jpg, не получится передать одинаковый v4 дальше в контроллер. Я капсом напишу, где путь на будет совпадать path.resolve(__dirname, "static", "tracks", "FKD43-FDJKJLFDL-439FDJ, audio") path.resolve(__dirname, "static", "tracks", "FKD43-FDJKJLFDL-439FDJ, img") То есть "FKD43-FDJKJLFDL-439FD" будет не одинаковым

21th- Автор вопроса
21th- Автор вопроса
21th
screenshot по понятнее написал

замыкание попробую вписать как то, не уверен что это вообще получится, но всё же

21th- Автор вопроса
21th
screenshot ну в общем из за того что destination срабатывает ...

я придумал, может между passport и uploadTrack создать новый middleware, который будет генерировать общий v4 и передовать дальше? Вообще это будет, работать, вопрос только в том костыль ли это?

21th- Автор вопроса
21th- Автор вопроса

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

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта