EJS - рендеринг частичного из базы данных

Я работаю над сайтом nodejs, используя Express, Express-PDF и ejs в качестве движка просмотра.

У меня есть страница администратора, где вы можете редактировать некоторые шаблоны с помощью SummerNote. Он использует KnexJS для базы данных и VueJS для некоторых фронтальных вещей (например, список шаблонов для доступа к редактору), декодирует для получения HTML из шаблона, сохраненного в БД (без HTML-символа в БД)

Где у меня проблема, это на другой странице. Это должно сделать шаблон для отправки его в экспресс-PDF. Я получаю правильный текст из базы данных, а также из декодирования. (спасибо console.log!) Я пытаюсь использовать ejs из модуля, а не как механизм просмотра в этом случае.

const ejs = require('ejs');
var root = path.join(path.dirname(__dirname),'views');
ret = ejs.render(content, data, {root});
res.pdfFromHTML({ filename: "hello.pdf", htmlContent: ret});

В этом случае root установлен правильно и нацелен на $(PROJECT)/views. Мой шаблон:

<p><% include pdf/heading %></p>
<p><br></p>
<p>Et ceci est un test Hello Fucking World<br>Chameau</p>

и каталог просмотров выглядит так:

/views
  /components/
  /pdf/
    heading.ejs

I found some stuff on my old friend google, but all is about use EJS as view engine. I already use ejs as view engin. In my case, i want to render the template (with somes includes) and get it in a var for sending it to pdf-express. I found the useage of "root" option in the EJS repos documentation (Nothing about that on the website). Hope somebody have any idea! Спасибо!

0 ответов

Другие вопросы по тегам