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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта