Экспресс / рули и пользовательские виды из БД - PullRequest
0 голосов
/ 07 февраля 2019

Я создаю сайт с экспресс-использованием рулей для механизма шаблонов.

В этом проекте я хочу дать пользователям возможность изменять HTML-код окончательных представлений ..

Если пользователь указывает пользовательский HTML-код для просмотра, мы сохраняем полный HTML-файл в базе данных и используем его при загрузке страницы.

Итак, мне нужно использовать две схемы для рендеринга vews:

1.- Нормальная схема рулей (просто укажите путь к файлу .hbs)

2. -Пропустите HTML-строку и отрендерите ее.

Это мой ожидаемый код:

router.get('/products/:product_slug', function(req, res, next) {
//Get custom html from db
var CustomHtml?getCustomHtml():false;
Product.find(function(err, products){
  if(CustomHtml){
    //How can I print the custom html¿?¿?¿?
    res.renderHTMLSTRING(CustomHtml, { title: 'Mondo', products: products });
  }else{
   //Default behaviour of hbs
    res.render('default/product/index', { title: 'Mondo', products: products });
  }});});

Обновление 1:

Я нашел следующий код для рендеринга шаблона в контроллере, а затемсделать res.send ().

var handlebars = require('handlebars');

// set up your handlebars template
var source = '{{ a }}';

// compile the template
var template = handlebars.compile(source);

// call template as a function, passing in your data as the context
var outputString = template({ a: 'B' });
and then send the output to the client

res.send(outputString);

Но проблема в том, что я хочу указать макет.Мне нужны заголовок, нижний колонтитул, статические файлы и просто изменить тело, которое я настроил ранее.

Любое предложение¿?Спасибо!Метки

...