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 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 run time based on data passed to it. Consider the following example:
<div> <p>Hello there {{ name }}! Todays date is {{ timestamp }}</p> </div>
The actual HTML that would wind up on a visitor's browser...