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

neo*_*ert 3 string templates node.js 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!')
})
Run Code Online (Sandbox Code Playgroud)

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

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

rob*_*lep 6

您可以使用pug.render()

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

或者你可以使用 预编译你的模板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'}) );
})
Run Code Online (Sandbox Code Playgroud)