我想将我的变量传递到该模板中,让它呈现,然后将生成的 HTML 作为字符串获取。
我怎样才能在 Express 中做到这一点?
我想将我的变量传递到该模板中,让它呈现,然后将生成的 HTML 作为字符串获取。
我怎样才能在 Express 中做到这一点?
根据 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
你不需要使用 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)
})