从字符串渲染哈巴狗模板?

时间:2017-06-24 09:33:42

标签: node.js string templates express pug

用pug模板作为字符串呈现html页面是否可行? 在nodejs中,您可以使用" pug tempalte"生成一个html页面。像这里:

var express = require('express')  
var app = express()  
app.set('view engine', 'pug')
var mytemplate="html\n\thead\n\tbody";
app.get('/', function (req, res) {  
    res.render(
        'index',
        { title: 'Hey Hey Hey!', message: 'Yo Yo'})
})

app.listen(3000, function () {  
    console.log('Example app listening on port 3000!')
})

模板文件应该是./views/index.pug。

是否可以使用保存在" mytemplate"中的模板。变量而不是文件内容?

1 个答案:

答案 0 :(得分:2)

您可以使用pug.render()

const pug = require('pug');
...
app.get('/', function (req, res) {  
  res.send( pug.render(mytemplate, { title: 'Hey Hey Hey!', message: 'Yo Yo'}) ) );
})

或者您可以使用pug.compile()预编译模板,这会更快,性能更高:

var mytemplate = pug.compile("html\n\thead\n\tbody");

app.get('/', function (req, res) {  
  res.send( mytemplate({ title: 'Hey Hey Hey!', message: 'Yo Yo'}) );
})