#node.js #express #ejs
#node.js #экспресс #ejs
Вопрос:
Я новичок в express JS и пытаюсь создать CMS, подобную этой:
- У пользователей есть конструктор страниц, где они могут перетаскивать различные компоненты на страницу.
- каждый компонент имеет свои собственные данные, которые также определяются пользователем
- У каждого компонента есть свой собственный шаблон представления
Итак, я должен проверить, какие компоненты должны загружаться, подготовить данные для каждого из них, отправить эти данные в соответствующий шаблон, отобразить один большой HTML-код и отправить клиенту.
Я знаю, слишком сложно объяснять, как это создать, но любые учебные пособия, примеры, ресурсы были бы оценены.
Ответ №1:
IIUC, вы можете выполнить это с помощью include
функции, которая есть в большинстве языков шаблонов. Для примера я буду использовать ejs
. Кроме того, я предполагаю, что вы знаете, как получить данные для пользовательских выборов на свой сервер.
на вашем app.js:
app.get('/someRoute', function(req, res) {
var data = //get user data here
res.render('someTemplate', {data:data});
});
someTemplate.ejs:
<%- include('header') %> //you should do this on every page
<% if (data == 'foo') { %>
<%- include('foo', {data:data}) %> //note that you can pass data to templates like this
<% } %>
<% if (data == 'bar') %>
<%- include('bar') %>
<% } %>
<% include('footer') %>
foo.ejs:
//some component here
Если вы хотите прочитать больше, ознакомьтесь с документами.
Надеюсь, это поможет!
Ответ №2:
Для этой цели вы можете использовать шаблонизатор, поскольку он позволяет вам использовать статические файлы шаблонов в вашем приложении. Во время выполнения механизм шаблонов заменяет переменные в файле шаблона фактическими значениями и преобразует шаблон в HTML-файл, отправляемый клиенту. Такой подход упрощает разработку HTML-страницы.
Некоторыми популярными движками шаблонов, которые работают с Express, являются Pug, Mustache и EJS. Генератор приложений Express использует по умолчанию Jade, но он также поддерживает несколько других.
Также проверьте эту ссылку
Комментарии:
1. Я использую шаблонизаторы… проблема в том, что представления должны генерироваться динамически… например: Клиент выбирает, чтобы на одной странице было: — Галерея — Форма обратной связи — Слайдер 1. проверьте базу данных и посмотрите список компонентов на этой странице 2. сгенерируйте данные для каждого компонента 3. (?) сгенерируйте макеты и отправьте обратно. Но, как вы могли видеть, я не могу определить эти 3 компонента частично в основном шаблоне жестко.