What is EJS | Lecture 12

EJS (Embedded JavaScript)

1. What is EJS?

EJS is a template engine used with Express.js.

 It helps us show dynamic data inside HTML.

Simple Meaning:

HTML + JavaScript = EJS

2. Why do we use EJS?

Without EJS:

  • We send plain HTML

  • No dynamic data

With EJS:

  • We can show data from backend

  • Reuse HTML

  • Make pages dynamic

Example:

Show user name from server in HTML.

3. Install EJS

npm install ejs

4. Setup EJS in Express

app.js

const express = require("express");
const app = express();

app.set("view engine", "ejs");

app.listen(3000, () => {
  console.log("Server running");
});

view engine tells Express to use EJS.

5. Folder Structure for EJS

project/
│── app.js
│── views/
│     └── home.ejs
│     └── about.ejs

EJS files must be inside views folder

6. First EJS Page

app.js

app.get("/", (req, res) => {
  res.render("home");
});

views/home.ejs

<h1>Welcome to EJS</h1>

7. Send Data from Server to EJS

app.js

app.get("/", (req, res) => {
  res.render("home", { name: "Aakash" });
});

home.ejs

<h1>Hello <%= name %></h1>

Output:

Hello Aakash

8. EJS Tags (MOST IMPORTANT)

TagMeaning
<%= %>Show output
<% %>Logic only
<%- %>Show HTML

9. Variable Example

<p>Course: <%= course %></p>

10. If-Else in EJS

<% if (age >= 18) { %>
  <p>You can vote</p>
<% } else { %>
  <p>You cannot vote</p>
<% } %>

11. Loop in EJS (Very Common)

app.js

app.get("/students", (req, res) => {
  res.render("students", {
    students: ["Rahul", "Neha", "Amit"]
  });
});

students.ejs

<ul>
  <% students.forEach(student => { %>
    <li><%= student %></li>
  <% }) %>
</ul>

12. Show Object Data

app.js

res.render("profile", {
  user: {
    name: "Aakash",
    age: 25
  }
});

profile.ejs

<p>Name: <%= user.name %></p>
<p>Age: <%= user.age %></p>

13. Include Header & Footer (Very Important)

views/partials/header.ejs

<h1>My Website</h1>
<hr>

views/partials/footer.ejs

<hr>
<p>© 2025</p>

Use in page

<%- include("partials/header") %>

<h2>Home Page</h2>

<%- include("partials/footer") %>

 Helps in reuse of code

14. Forms with EJS

form.ejs

<form action="/submit" method="POST">
  <input type="text" name="username">
  <button>Submit</button>
</form>

app.js

app.use(express.urlencoded({ extended: true }));

app.post("/submit", (req, res) => {
  res.send(req.body.username);
});

15. Static Files with EJS

Folder

public/
│── style.css

app.js

app.use(express.static("public"));

Use in EJS

<link rel="stylesheet" href="/style.css">

16. EJS vs HTML

HTMLEJS
StaticDynamic
No JS logicJS logic
No dataBackend data

Comments

Popular posts from this blog

Introduction to Node.js | Lecture 1

Introduction to NPM | Lecture 2

Modules in Node.js | Lecture 4