数据库中的Express /车把和自定义视图

时间:2019-02-07 05:34:48

标签: express handlebars.js

我正在使用模板引擎的车把创建带有Express的网站。

在这个项目中,我想让用户能够修改最终视图的HTML。

如果用户为视图指定了自定义html,我们会将完整的html保存在数据库中,并在页面加载时使用。

因此,我需要使用两种模式来呈现vews:

1.-车把的法线方案(只需通过file.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:

我找到了以下代码以在控制器a中渲染模板,然后进行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);

但是问题是我想指定一个布局。我需要页眉,页脚,静态文件,只需更改以前配置的正文即可。

有什么建议吗?谢谢! 标签

0 个答案:

没有答案