Есть ли место, где набор кода запускается каждый раз, когда я посещаю маршрут, и вывод кода доступен для модуля на маршруте? - PullRequest
0 голосов
/ 24 марта 2020

У меня есть веб-приложение с несколькими инструментами. Например, docx-to-pdf, pdf-to-docx и т. Д. c ... каждый представляет собой файл модуля vue в приложении.

Когда пользователь переходит к инструменту docx-to-pdf , загружает файл с использованием dropzone, файловый менеджер сервера сгенерирует uuid (я называю это идентификатором сеанса модуля) и использую его в качестве имени каталога, чтобы поместить загруженный файл и вернуть uuid в браузер. Затем, когда пользователь нажимает кнопку «конвертировать», uuid отправляется с помощью команды «конвертировать», и сервер выполняет преобразование и позволяет пользователю загрузить преобразованный файл.

Это работает нормально, пока у меня не появится Инструмент называется Combine-PDF и 2 капли на странице. Когда я загружаю file1 в dropzone1 и file2 в dropzone2 одновременно, каждый переходит в свой каталог, потому что файловый менеджер сервера считает, что это первый загружаемый файл. Если я не завершу загрузку файла file1, прежде чем запустить file2, в противном случае, когда я попытаюсь нажать на кнопку «Объединить», на сервере будет только один из двух uuids, и он попытается объединиться, но найдет только один файл.

самое логичное решение, которое я могу придумать, - это сгенерировать uuid в Vue, и когда я загружаю файлы на сервер, он проверяет, что это правильный uuid, и использует его на протяжении всего сеанса в этом модуле. Я могу поставить это созданный Vue хук. Это нормально, но я считаю, что когда я или мои товарищи по команде добавляем модули, мы продолжаем повторять один и тот же код в каждом модуле, который кажется повторяющимся.

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

Я думал о том, чтобы иметь родительский модуль для всех этих инструментальных модулей, и в этом родительском модуле я выполнил бы это поколение uuid в его созданном хуке, но это загружается только один раз, а не каждый раз, когда я посещаю модуль.

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете переместить функцию fileUpload в родительский объект dropzone, чтобы каждый компонент dropzone отправлял файл в родительский объект. Родитель может затем загрузить оба файла в виде массива на сервер и вернуть клиенту массив UUID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...