Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
// 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);
Result
Open