Elliot Bonneville
Elliot Bonneville

Reputation: 53311

How can I use Express to render dynamic files?

I'm looking to use Express to render raw strings as HTML, with the ability to reference static files in a specified directory (CSS, images, and other resources).

I've done a lot of research, but I haven't seen anything that approaches what I'm trying to do. For example, I thought perhaps writing a custom templating engine that only pretended to load a file would cut it, but that doesn't seem to do the trick.

What's the best way to approach this?

Upvotes: 0

Views: 1219

Answers (1)

NarendraSoni
NarendraSoni

Reputation: 2258

There are many ways to do it. It can done in any other templating engine as well but here i am guiding you to implement same using EJS(Embedded Javascript).

Use Express Generator to create an ExpressJS app with EJS templating Engine.

command :

express --ejs AppName

For more information about express Generator refer to doc here

Now EJS has tags such as :

 1. <% code %>   -  Code that is evaulated without "echo" it is not printed out.
 2. <%= code  %>  -  Code that is evaluated and printed out and escaped!
 3. <%- Code %>   -  Code that is evaluated printed out and not escaped!

So in your case you can use 3rd the third tag that i have mentioned above.

Render EJS views in the usual way from your route config:

res.render('index.ejs', {
  // data you want to pass ..
});

Code sample

Some time ago i was playing around with EJS, i developed a very small blogApp for practice. You can look into this view, line number 33, for more practical way of implementing same.

Upvotes: 1

Related Questions