Шаблонизаторы
Lunatic предоставляет возможности для интеграции шаблонизаторов. По сути, может быть использован любой шаблонизатор: некоторые, такие как Pug поддерживаются "из коробки", для некоторых нужно дополнительно написать адаптер.
Пример использования шаблонизатора Pug:
import { LunaticServer } from '@shelepuginivan/lunatic'
import { render } from 'pug'
app.renderer(render)
app.renderer
app.renderer()
это метод класса LunaticServer
, который принимает параметр RenderFunction
- функцию-рендерер, со следующей сигнатурой:
export type RenderFunction = (
source: string,
options?: Record<string, any>,
) => string
Где:
source
:string
- исходный контент шаблонаoptions
:Record<string, any>
- опции шаблона, т.е. переменные, которые в нём используются
Обратите внимание, что вы может е написать адаптер - функцию типа RenderFunction
для метода вашего шаблрнизатора, и затем использовать его в app.renderer()
. Также, вы можете написать свою функцию-рендерер.
Рендер шаблонов
Чтобы отправить шаблон в качестве ответа, вы можете использовать методы Response.render()
и Response.renderFile()
.
import { LunaticServer } from '@shelepuginivan/lunatic'
import { render } from 'pug'
app.renderer(render)
app.get('/', (_req, res) =>
res.renderFile(join(__dirname, '..', 'views', 'index.pug')),
)