Как работать с объектами данных в Jade?

Jade, который сейчас называется Pug, является шаблонизатором для языка JavaScript. Он упрощает создание HTML-шаблонов, позволяя встраивать JavaScript-код и использовать объекты данных.

Для работы с объектами данных в Pug, вам необходимо передать объект или массив данных в шаблон путем указания его вторым аргументом при рендеринге шаблона. Например, если у вас есть объект называемый user с полями name и age, вы можете передать его в шаблон следующим образом:

app.get('/', function(req, res) {
  var user = {
    name: 'John',
    age: 25
  };
  res.render('index', {user: user});
});

Затем, в самом шаблоне Pug, вы можете обратиться к полям объекта данных, используя . (точку) для разделения иерархии. Например, чтобы вывести имя пользователя, вы можете сделать следующее:

h1 User Name: #{user.name}

В этом примере, h1 является тегом HTML для заголовка первого уровня, User Name: добавляется в качестве текстового содержимого заголовка, а #{user.name} используется для вставки значения из объекта данных в шаблон.

Вы также можете использовать условия и циклы для работы с объектами данных в Pug. Например, если у вас есть массив пользователей, вы можете использовать цикл each для отображения каждого из них:

ul
  each user in users
    li= user.name

В этом примере, ul является тегом HTML для маркированного списка, each используется для перебора каждого пользователя в массиве users, и li= user.name используется для отображения имени каждого пользователя в виде пункта списка.

Кроме того, Pug поддерживает фильтры для обработки данных. Фильтры позволяют применять различные обработки к данным перед их выводом в шаблон. Например, вы можете использовать фильтр markdown для преобразования текста в HTML:

p
  :markdown
    # Hello, **Pug**!

В этом примере, :markdown указывает на фильтр markdown, а # Hello, **Pug**! является текстом, который будет обработан и преобразован в HTML.

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