Итак, я сначала погрузился в голову Node / Express (с изучением Javascript Intermediate) и немного запутался, зачем нужен «движок представления», такой как Jade или EJS?

Кажется, я не могу найти то, что использует обычный HTML5? Или я не могу передать значения в обычный HTML с помощью экспресс?

Давайте представим, что у меня есть страница index.html, которая загружается, и когда я "Войти", она загружается с именем пользователя, размещенным вверху (например, просто). Могу ли я не передавать значения в обычный файл .html в экспрессе?

6
msmith1114 1 Апр 2017 в 05:41

2 ответа

Лучший ответ

Нужен ли View Engine для Express / Node?

Нет, это не обязательно. Express может с радостью обслуживать статические файлы HTML5 по вашему желанию. Вам не нужен двигатель представления для этого. Вы можете создавать собственные маршруты и использовать res.sendFile() для каждой страницы, или вы можете использовать express.static() для автоматического обслуживания целого каталога статических файлов HTML, или вы можете написать свой собственный код для создания любого содержимого HTML5, которое вы хотите отправить и использовать res.send() для отправки.

Когда требуется механизм представления, вам нужна система типа шаблона, в которой вы можете создать шаблон HTML с заполнителями для динамического содержимого, а затем вставить динамические значения в страницу на сервере.

Могу ли я не передавать значения в обычный файл .html в экспрессе?

Нет, вы не можете сделать это с помощью регулярного экспресса. В Express есть средства для обслуживания статических файлов HTML, но не для вставки динамического содержимого в файл HTML. Вот для чего вы используете движок представления. Express не создавал эту возможность сам по себе, потому что существуют десятки различных философий движка представлений, и Express не хотел использовать один стиль, поэтому вместо этого он поддерживает интерфейс движка представления для рендеринга из шаблона, и вы можете выбрать, какой движок представления вы хотите использовать. использовать .

7
jfriend00 1 Апр 2017 в 03:06

Чтобы ответить на главный вопрос - движок представления не нужен для экспресс / узла.

Вы правы, однако, вы не можете передавать переменные / значения в чистый HTML. Механизм представления - это то, что просматривает передаваемые вами данные и генерирует HTML-разметку для вас.

Другой подход к использованию движка представления заключается в использовании библиотеки / фреймворка внешнего интерфейса, таких как jquery, реагировать или угловой (или вы можете использовать обычный javascript). Javascript может извлекать данные (с помощью ajax / fetch) и связывать их с вашим html - я думаю, он не будет привязан, если вы используете обычный javascript или jquery, но вы можете обновить DOM своими данными.

2
abdul ahmad 1 Апр 2017 в 02:45