Вопрос назрел очень давно, тк всегда остается вопрос что дальше?, и всегда на одном и том же этапе
И так суть
Что хочу получить:
- каждая секция независима и получает данные из БД по отдельному маршруту
- для каждой секции есть свои данные и связи между таблицами
(/features, /clients, /products...)
Как грамотно создать динамический шаблон сайта (для примера взял лендинг) именно под nodejs-express
Стек технологий: верстка далее серверная часть на expressjs mysql--- шаблонизатор ejs (пробовал разные модификации).
Разрезаю статический шаблон (по секциям) одна секция отдельный под шаблон(статический), далее в index.ejs
связываю все воедино.
<%- include('layout/head'); -%>
<%- include('navigation'); -%>
<!-- /.navigation -->
<%- include('header'); -%>
<!-- END HEADER -->
<%- include('main'); -%>
<!-- /#main.main -->
<%- include('features'); -%>
<!-- /#features.features -->
Как сделать каждую секцию динамической, данные беру из mysql(под каждую секцию своя таблица с данными и тд).
Как правильно это реализовать?
1) Для каждой секции создать свой GET запрос и делать обращение к серверу через ajax? как по мне не очень разумное решение, особенно если есть множество секций.
2) Создать единый запрос к бд на корневом маршруте - если данных очень мало то сойдет, однако очень плохое решение.
3) Создать отдельные GET запросы (для каждой секции) и при помощи к примеру Angular фреймворка ссылаться на эти маршруты в формате JSON?
const connection = mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: 'bd_cardboard'
});
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static(__dirname + '/public'));
/*Routing*/
app.get('/', function(req,res){
res.render('index');
});
app.get('/features', function(req,res){
connection.query('SELECT features.title, features.descr, features.photo_id, photos.path, photos.category, photos.exp, photos.altText FROM features\n' +
'INNER JOIN photos WHERE features.photo_id = photos.id;', function(err, rows){
if(err) throw new Error;
res.json(rows);
});
});
Буду благодарен за Вашу помощь! Очень хочу в этом вопросе разобраться!