Express.js
Beginner
1 min read
Layouts and Partials with EJS
Example
// views/partials/header.ejs
// <header>
// <nav><a href="/">Home</a> | <a href="/about">About</a></nav>
// </header>
// views/partials/footer.ejs
// <footer><p>© 2025 <%= appName %></p></footer>
// views/layout.ejs (with express-ejs-layouts)
// <!DOCTYPE html>
// <html>
// <head><title><%= title %></title></head>
// <body>
// <%- include('partials/header') %>
// <%- body %> ← injected by express-ejs-layouts
// <%- include('partials/footer') %>
// </body></html>
const express = require('express');
const ejsLayouts = require('express-ejs-layouts');
const path = require('path');
const app = express();
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
app.use(ejsLayouts);
app.set('layout', 'layout'); // default layout file
app.use((req, res, next) => {
res.locals.appName = 'MySite';
next();
});
app.get('/', (req, res) => {
res.render('home', { title: 'Home Page' });
});
app.get('/about', (req, res) => {
res.render('about', { title: 'About Us' });
});
app.listen(3000);
Related Resources
Express.js Reference
Complete tag & property list
Express.js How-To Guides
Step-by-step practical guides
Express.js Exercises
Practice what you've learned
More in Express.js