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 ответов

8 просмотров
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- Автор вопроса

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта