Это часть механизма просмотра/шаблона функций Экспресс. Часто ваши обработчики запросов возвращают только некоторый объект JSON. Но в других случаях вы хотите создать обычный «документ», например, полностью созданную HTML-страницу, RSS-канал и т. д. Механизмы шаблонов помогут вам в этом, хотя они ни в коем случае не являются обязательными. Вы можете использовать другие подходы (например, создавать строки вручную, если вам нравится боль), или вы можете вручную использовать библиотеку, такую как pug/moustache и т. д. Функциональность механизма представления в основном интегрирует такие библиотеки, как pug/moustache, в экспресс, поэтому их проще использовать.
На связанной странице есть хороший пример того, как это можно использовать на практике:
Затем создайте маршрут для отображения файла index.pug. Если свойство механизма представления не задано, необходимо указать расширение файла представления. В противном случае вы можете его опустить.
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!' })
})
Когда вы делаете запрос на домашнюю страницу, файл index.pug будет отображаться как HTML.
Express много раз знает о различных шаблонизаторах. Так что достаточно сказать express.set('view engine', 'pug')
, и он будет работать правильно, пока установлен пакет pug
.
В других случаях вам нужно использовать app.engine
, чтобы более явно указать, что делать. Называется как app.engine('jade', require('jade').__express)
. Первый параметр - это просто расширение, которое нужно искать. Поэтому, когда вы говорите req.render('index', ...)
, он будет искать файл index.jade
. Второй параметр — это функция, которая фактически выполняет интеграцию между механизмом просмотра (который, как я уже сказал, является отдельной вещью от экспресса) и самим выражением. consolidate.js
— это пакет с интеграцией для многих механизмов просмотра.
Но если вы хотите увидеть, что делает эта функция, ознакомьтесь с разработкой механизмов шаблонов для Express< /а>. Параметр callback
должен выглядеть как function(filePath, options, callback)
. filePath
— это просто имя файла на диске, используемого для рендеринга, поэтому index.jade
в приведенном выше примере. callback
— это стандартный обратный вызов узла, вызываемый как callback(err)
в случае ошибки или callback(null, renderedContent)
в случае успеха. options
— это объект, переданный из req.render('index.jade', /* options */ { title: 'foo', content: 'bar' })
. Затем вам решать, как на самом деле выполнять рендеринг на основе предоставленных аргументов.
person
Horia Coman
schedule
20.08.2018