Express & res.render 将模板作为字符串传递

Express & res.render passing the template as string

我想执行 res.render,但不是像这样将模板文件作为参数传递:

res.render('index.hbs', { a: 'B' });

我希望能够像这样将模板作为字符串传递:

let template = '{{ a }}'
res.render(template, { a: 'B' });

上面的代码显然不起作用,因为 res.render 只接受文件 path/name。关于如何实现这一点有什么想法吗?

您可以先渲染您的模板

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' });

然后将输出发送给客户端

res.send(outputString);