如何将EJS模板转换为字符串?

时间:2011-07-06 00:23:21

标签: javascript html node.js express ejs

我想将变量传递给该模板,让它渲染,然后将生成的HTML作为字符串。

我怎么能在Express中做到这一点?

2 个答案:

答案 0 :(得分:24)

根据ejs版本,以下内容应该有效。

var ejs = require('ejs'),
    fs = require('fs'),
    file = fs.readFileSync(__dirname + '/template.ejs', 'ascii'),
    rendered = ejs.render(file, { locals: { items:[1,2,3] } });

console.log(rendered);

如果尚未安装ejs,则可能需要安装它。

cd;npm install ejs

答案 1 :(得分:1)

您不需要使用fs。这是内置于EJS(不确定它是否在上一个答案发布时)。

它返回一个Promise但是你可以使用Async / await来获取值:

let html
async function myFunc() {
    html = await ejs.renderFile(filePath, data, options)
} 
console.log(html)

或者它提供回调函数:

ejs.renderFile(filePath, data, options, function(err, html) {
    console.log(html)
})