Shoulder.dev Logo Shoulder.dev

The Big Picture - benhall/express-demo - Handlebars

Handlebars is a powerful and logicless templating language used in various projects, including Express applications. It keeps the view and the code separated, ensuring a clean and efficient development process. Handlebars is an extension of Mustache and is widely used due to its simplicity and ease of use.

To use Handlebars in an Express application, first, install it using npm:

npm i handlebars

Next, create a Handlebars template using JavaScript:

const source = "<p>Hello, my name is {{name}}. I am from {{hometown}}. I have {{kids.length}} kids:</p>" +
"<ul>{{#kids}}<li>{{name}} is {{age}}</li>{{/kids}}</ul>";

Compile the template using the Handlebars.compile method:

const template = Handlebars.compile(source);

Finally, pass the data to the compiled template to render the output:

const data = { "name": "Alan", "hometown": "Somewhere, TX", "kids": [{"name": "Jimmy", "age": "12"}, {"name": "Sally", "age": "4"}]};
const result = template(data);

Handlebars allows templates to be precompiled and included as JavaScript code, resulting in faster startup times. It is designed to work in any ECMAScript 3 environment and has been tested to be faster than Mustache in performance tests.

Handlebars includes additional features to make writing templates easier, such as nested paths, helpers, block expressions, and literal values. It is widely used in various projects, including static site generators, editorial calendars, and view engines. Some popular projects using Handlebars include Assemble, Cory, CoSchedule, and Ember.js.