Здравия всем.
Несмотря на большой объём литературы из интернета никак не могу уловить основную концепцию организации работы веб-сайта (приложения). Или, хотя бы общепринятую. Поэтому не могу приступить к изучению бекенда, хотя для себя давно решил, что это будет только javascript с его экосистемой.
Один из основных нерешённых вопросов, организация открытой и закрытой частей приложения. Сейчас организовал свой сайт
axdrv.ru, и упёрся всё в тот же вопрос. Например, сейчас список статей организован через метод fetch, который подтягивает json фал, что находится непосредственно в папке с сайтом, а посему доступ к нему запросто открывается через отладчик:
Понятно, когда вопрос коснётся конфиденциальности, такой подход неприемлем.
Тогда можно предположить, что пусть фалы json хранятся где-то на стороне, и доступ к ним ограничен политикой CORS. Однако снова хватает того же fetch, зачем nodejs? Только ли для того что с ним упрощается разработка?
И, второй вопрос вдогонку. Я понимаю раз технология nodejs так популярна я довольно скоро получу ответ, почему стоит его использовать, но в инете я пока нахожу один и тот же паттерн, вроде :"Ставим express и раздаём файлы в виде *some_content.js , а дальше уже недалеко до React или Vue" Но, nodejs это как по мне прежде всего серверный фреймворк, почему не использовать его в качестве помощника запрос-ответ, а рендер делать по старинке, или почти, типа статически динамических html? И, где его тогда устанавливать, во внутренней файловой структуре или обращаться к нему извне?
Варианты:
а) всё в одной папке;
б)клиент отдельно, nodejs и БД вместе, отдельно от клиента;
в) клиент и nodejs вместе, БД отдельно, nodejs только сервит но не рендерит на клиента;
г) клиент отдельно, nodejs отдельно, БД отдельно.
На сайте используются Web Components, в общем всё вручную, больше для полного понимания что где и почему.
Благодарю заранее.
P.S. Больше всего я застрял на атрибуте action тега form
<form action="">
Если я прописываю путь к обработчику в nodejs, то пока не нашёл как обработчик может дать команду рендерить страницу, которая находится на клиентской стороне. Везде описывается как получить соответствующую страницу с сервера. А у меня все шаблоны на клиенте, нужны только данные. Так, значит лучше использовать onsubmit preventDefault и обрабатывать запрос fetch в javascript файле? Где-то здесь пробел большой.