By default, Express can and will happily render static HTML documents and serve them back to the client. However, unless you're building a purely static, content-driven site, which is doubtful, you're more than likely going to want to render your HTML dynamically. That is, you want to generate portions of the HTML on the fly as pages are requested, perhaps using loops, conditional statements, data-driven content, and so on. In order to render dynamic HTML pages, you need to use a rendering engine.
This is where Handlebars comes in. The rendering engine is given its name because of the syntax it uses to display data, namely double pairs of braces, {{
and }}
. Using Handlebars, you can have sections of your HTML pages that are determined at runtime based on data passed to it. For example:
<div> <p>Hello there {{ name }}! Todays date is {{ timestamp }}</p> </div>
The actual HTML that would wind up on a visitor's browser would be:
<div>...