Day 23 – Template Engines - Learning Node JS In 30 Days [Mini series]
Tags: node, javascript, codenewbie
Published: 2019-12-28 17:30:38

A template engine enables you to use static template files in your application. At runtime, the template engine replaces variables in a template file with actual values, and transforms the template into an HTML file sent to the client. This approach makes it easier to design an HTML page.

Some popular template engines that work with Express are Pug, Mustache, and EJS. The Express application generator uses Jade as its default, but it also supports several others. (From express official Document)

There are many different templating engines

EJS
Mustache
Handlebars
Underscore
Pug
Marko
We can use any of them to do the frontend while making the api.

I’m going to use EJS to show you how to do this.

Start with the official page – https://ejs.co/

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/oyprhg6en50ygcma3yg8.png)

You can check the features of it

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/2lwacvz52ihfkwj0lln5.png)

Installing it is super easy

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/huygez25kztivv9tss1w.png)

So finally our package.json

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/bc2m9y520o1dd9a592kh.png)

###Want to know more about templating engine ?

You can see the graphical version here
{% instagram B6i4bCAAQzC %}

Originally it published on [nerdjfpbblog](https://blog.nerdjfpb.com/day23-nodejsin30days/). You can connect with me in [twitter](https://twitter.com/nerdjfpb) or [linkedin](https://www.linkedin.com/in/nerdjfpb/) !


###__You can read the old posts from this series (below)__

{% post nerdjfpb/day-1-learning-node-js-in-30-days-mini-series-55e7 %}

{% post nerdjfpb/day-2-learning-node-js-in-30-days-mini-series-5023 %}

{% post nerdjfpb/day-3-learning-node-js-in-30-days-mini-series-24i4 %}

{% post nerdjfpb/day-4-learning-node-js-in-30-days-mini-series-1koc %}

{% post nerdjfpb/day-5-learning-node-js-in-30-days-mini-series-21jm %}

{% post nerdjfpb/day-6-learning-node-js-in-30-days-mini-series-758 %}

{% post nerdjfpb/day-7-learning-node-js-in-30-days-mini-series-3023 %}

{% post nerdjfpb/day-8-var-vs-let-vs-const-learning-node-js-in-30-days-mini-series-1i72 %}

{% post nerdjfpb/day-9-mastering-eventemitter-learning-node-js-in-30-days-mini-series-2dfe %}

{% post nerdjfpb/day-10-mastering-eventemitter-learning-node-js-in-30-days-mini-series-2802 %}

{% post nerdjfpb/day-11-creating-and-deleting-folders-learning-node-js-in-30-days-mini-series-3a2d %}

{% post nerdjfpb/day-12-creating-own-server-learning-node-js-in-30-days-mini-series-3ef %}

{% post nerdjfpb/day-13-buffer-stream-learning-node-js-in-30-days-mini-series-5c5d %}

{% post nerdjfpb/day-14-serving-html-pages-learning-node-js-in-30-days-mini-series-2hl3 %}

{% post nerdjfpb/day-15-sending-json-to-client-learning-node-js-in-30-days-mini-series-21pc %}

{% post nerdjfpb/day-16-routing-basic-learning-node-js-in-30-days-mini-series-5hk6 %}

{% post nerdjfpb/day-17-npm-node-package-manager-learning-node-js-in-30-days-mini-series-1nek %}

{% post nerdjfpb/day-18-why-express-js-learning-node-js-in-30-days-mini-series-b5a %}

{% post nerdjfpb/day-19-nodemon-learning-node-js-in-30-days-mini-series-m39 %}

{% post nerdjfpb/day-20-express-js-introduction-learning-node-js-in-30-days-mini-series-2pg5 %}

{% post nerdjfpb/day-21-http-methods-learning-node-js-in-30-days-mini-series-hci %}

{% post nerdjfpb/day-22-route-parameters-learning-node-js-in-30-days-mini-series-4knk %}