我正在使用模板引擎的车把创建带有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);
但是问题是我想指定一个布局。我需要页眉,页脚,静态文件,只需更改以前配置的正文即可。
有什么建议吗?谢谢! 标签