Рендеринг необработанного HTML в Express: несколько методов, объясненных примерами кода

Отображение необработанного HTML-кода в ответ с помощью Express — распространенное требование при создании веб-приложений. Есть несколько способов добиться этого, и в этой статье блога я расскажу о нескольких подходах вместе с примерами кода. К концу этой статьи вы получите четкое представление о том, как визуализировать необработанный HTML с помощью Express.

Метод 1: использование res.send()

Самый простой способ отобразить необработанный HTML — использовать метод res.send(), предоставляемый Express. Вы можете передать содержимое HTML в виде строки в метод send(), и Express отправит его в качестве ответа клиенту. Вот пример:

const express = require('express');
const app = express();
app.get('/', (req, res) => {
  const htmlContent = '<h1>Hello, World!</h1>';
  res.send(htmlContent);
});
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Метод 2: использование res.sendFile()

Другой метод визуализации необработанного HTML — использование метода res.sendFile(). Этот метод отправляет файл, указанный в качестве параметра в ответе. Вы можете создать HTML-файл, а затем использовать res.sendFile(), чтобы отправить его в качестве ответа. Вот пример:

const express = require('express');
const path = require('path');
const app = express();
app.get('/', (req, res) => {
  const filePath = path.join(__dirname, 'public', 'index.html');
  res.sendFile(filePath);
});
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Метод 3. Использование механизма шаблонов

Express поддерживает различные системы шаблонов, такие как EJS, Handlebars, Pug (ранее Jade) и т. д. Эти системы шаблонов предоставляют мощные функции для визуализации динамического HTML-контента. Вы можете использовать механизмы шаблонов для визуализации необработанного HTML, передавая содержимое HTML в качестве переменной в шаблон. Вот пример использования шаблонизатора EJS:

const express = require('express');
const app = express();
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
  const htmlContent = '<h1>Hello, World!</h1>';
  res.render('index', { htmlContent });
});
app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

В этом примере мы устанавливаем механизм представления EJS, используя app.set(). Затем мы создаем файл EJS с именем index.ejs

<%- htmlContent %>

.

Выражение <%- htmlContent %>вставляет содержимое HTML в шаблон EJS.