开发者

How can I turn an EJS template into a string?

开发者 https://www.devze.com 2023-03-17 07:09 出处:网络
I want to pass my variables into that template, let it render, and then get the resulting HTML as a string.

I want to pass my variables into that template, let it render, and then get the resulting HTML as a string.

How c开发者_StackOverflow社区an I do that in Express?


Depending on the ejs version the following should work.

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

You may need to install ejs if it isn't already installed.

cd;npm install ejs


You don't need to use fs. This is built into EJS (not sure if it was at the time previous answer was posted).

It returns a Promise however so you could use Async/await to get the value:

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

Alternatively it provides a callback function:

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号