TIM*_*MEX 9 html javascript ejs node.js express
我想将变量传递给该模板,让它渲染,然后将生成的HTML作为字符串.
我怎么能在Express中做到这一点?
Lim*_*ime 25
根据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);
Run Code Online (Sandbox Code Playgroud)
您可能需要安装ejs(如果尚未安装).
cd;npm install ejs
Run Code Online (Sandbox Code Playgroud)
你不需要使用fs。这是内置于 EJS 中的(不确定是否是在发布之前的答案时)。
但是它返回一个 Promise,因此您可以使用 Async/await 来获取值:
let html
async function myFunc() {
html = await ejs.renderFile(filePath, data, options)
}
console.log(html)
Run Code Online (Sandbox Code Playgroud)
或者它提供了一个回调函数:
ejs.renderFile(filePath, data, options, function(err, html) {
console.log(html)
})
Run Code Online (Sandbox Code Playgroud)