Home > front end >  fs.readFile and variable passing in node
fs.readFile and variable passing in node

Time:12-07

I have two variables like this in my node project

header ="Hello Header";
result =  `<html>
    </head>
        <body>
            <div class='modal'>
                <div class='header'>
                    ${header}
                </div>
            </div>
        </body>
        </html>`;

I want to load this html part from an html file and pass the header value on to it. How we can achieve it ?

I know we can use fs.readFile

fs.readFile("index.html", 'utf8', function (err, data) {
    result = data;
});

But how can I pass the header variable into this ?

CodePudding user response:

The easiest and fastest solution would be to:

  • make the replaceable header part in the HTML discoverable with a pattern like {{ header }}

  • read the file as you would normally

    fs.readFile("index.html", 'utf8', function (err, data) { // make something here });

OR

you could use promises for better readability and compact code

import {promises} from "fs"
(async () => {
  const html = await promises.readFile(file, "utf8");
})()
  • then when you have the HTML in a variable just do:

    data.replace("{{ header }}", header)

  • Related