Всем доброго дня!
Делаю проект, магазин с админкой (CMS).
Как правильно организовать проект на
React с сервером на
Node.js?
Вариант 1
Надо ли разделить Frontend и Backend на два разных проекта, затем с помощью
Docker'a собрать отдельно Front и Back, и потом каждую часть разместить на отдельном хостинге?
Вариант 2
Или же можно всё разместить в одном месте и потом с помощью
Docker'а собрать всё это вместе и развернуть на VPS/VDS, где мы запускаем build Front'a и запускаем сервер (npm run serve)?
Мои мысли по этому поводу:
Так как мне придётся загружать фотографии в админке, потом сохранять всё это в локальной папке Front проекта ,
не скачивая сам файл, а именно сохранить в папке (/images).
Пример:
Выбрали файл -> Нажали "Сохранить изменения товара" -> Данные ушли на сервер -> Сервер сохранил изображение в папку (/images)
То мне скорее всего нужно будет сделать так, как во
втором варианте. Ведь JS не умеет работать с каталогами, в то время как Node всё это может, через createWriteStream и pipe. Верно?
То есть хочу сделать как в PHP...
<form action="api/some.php">
<input type="file" />
<button type='submit'>Сохранить изменения товара</button>
</form>
...но на Node.js, аля
<form action="api/some.js">
<input type="file" />
<button type='submit'>Сохранить изменения товара</button>
</form>
Понятное дело, что так сделать нельзя и надо будет повесить обработчик и вызывать:
fetch('api/some.js').then(() => {
alert('Файл сохранён в папку /images')
})
И да, не используя ReactDomServer, renderToString и так далее.
Если мои рассуждения на верном пути, то посоветуйте, как правильно всё оформить и где, что прописать.
Всем спасибо!