How can I turn an EJS template into a string?

Viewed 10533

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

How can I do that in Express?

2 Answers

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)
})
Related