Использование HTML вместо Jade или Ejs в Express.js

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Хотите быстро начать работу с Express.js, без перехода на новый шаблонизатор? Раздавайте HTML-файлы из папки 'public', настроив Express соответствующим образом. Вот небольшой пример:

JS
Скопировать код
const express = require('express');
const path = require('path');
const app = express();

app.use(express.static(path.join(__dirname, 'public')));

app.listen(3000, () => { 
  console.log('Сервер успешно запущен на порту 3000');
});

Просто поместите файлы формата .html в каталог 'public', и Express сразу откликнется на HTTP-запросы.

Кинга Идем в IT: пошаговый план для смены профессии

Специфическая настройка маршрутов

В некоторых ситуациях, вам может потребоваться указать определенные страницы для открытия по конкретным URL-адресам или добавить динамическое содержимое. В таких случаях вы найдете метод res.sendFile особенно полезным:

JS
Скопировать код
app.get('/', function(req, res) {
  res.sendFile(path.join(__dirname + '/public/index.html'));
});

Этот код гарантирует, что при переходе на домашнюю страницу (например, на http://localhost:3000/) будет отображаться index.html.

Делаем HTML живым

Статические файлы это хорошо, но иногда от динамического контента ожидают большего. Здесь вам могут помочь:

  • AngularJS — фреймворк, делающий HTML динамичным.
  • JavaScript позволяет взаимодействовать с DOM после загрузки страницы.
  • Alpha consolidate и swig — библиотеки для работы с динамическим контентом на сервере при помощи Express.
JS
Скопировать код
const cons = require('consolidate');

app.engine('html', cons.swig)
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');

Расширяем возможности темплейтов с EJS

Хотите добавить больше функциональности в ваши .html файлы? Используйте EJS:

JS
Скопировать код
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

При помощи JavaScript, HTML обретает способность к серверному рендерингу.

Визуализация

В галерее Express.js можно встретить шедевры HTML. Выбор подхода к их отображению остается за вами:

Markdown
Скопировать код
🖼️ **Галерея**: [Главная, Продукты, Контакты]

Не нужно применять шаблонизаторы — ваши творения готовы к показу:

Markdown
Скопировать код
🔨 **Соединение (res.sendFile)**: Для прямого отображения вашего творения.

Таким образом, ваше творение становится центральной экспозицией в галерее:

Markdown
Скопировать код
🎨➡️🖼️: "Home.html" теперь главный экспонат!

С Express нет ограничений на оформление, это позволяет раскрыть весь потенциал вашего HTML.

Когда стоит использовать шаблонизатор

Некоторые случаи, когда шаблонизаторы оказываются полезными:

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

Надежность работы

Чтобы обеспечить стабильность работы с набором HTML:

  • Не настраивайте 'html' как шаблонизатор, чтобы не столкнуться с ошибкой "Cannot find module 'html'".
  • Обслуживайте файлы безопасно, предотвращая попытки обхода директорий.
  • Правильное определение MIME-типов – обязательный шаг, иначе браузеры могут некорректно обрабатывать ваши файлы.

Полезные материалы

  1. Express 4.x – API Reference
  2. EJS -- Embedded JavaScript templates
  3. Getting Started – Pug
  4. GitHub – janl/mustache.js: Minimal templating with {{mustaches}} in JavaScript
  5. Introduction | Handlebars
  6. Serving static files in Express