EJS with Bootstrap Development

EJS WITH BOOTSTRAP DEVELOPMENT

Ejs is the easiest templating engine for nodejs. Most developers use ejs for fast web development.

Step 1:
Here is one of the few ways you can integrate EJS with bootstrap. First, you may want to install express, ejs, and express-js-layouts.

Step2:
npm init

npm i express ejs express-js-layouts

Step 3:

Next, create a View folder along with partials folders and layout. ejs file. Look at the structure below for more information

Here are some explanations. 
pages folder: To keep all the files related to the web pages
partials folder:  To keep reusable HTML codes. 
layout.ejs: This will be the default layout for ejs. 

 

Step 4:
In the layout.ejs, please include the code. This would be the place you may want to include the bootstrap code.

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>After SPM & IGCSE</title>

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>

</head>

<body>

    <%- include('../views/partials/navigation.ejs') %>

    <%- body %>

    <%- include('../views/partials/footer') %>




</body>

</html>

 

Ejs syntax to include the navigation, body and partials foooter
    <%- include(‘../views/partials/navigation.ejs’) %>
    <%- body %>
    <%- include(‘../views/partials/footer’) %>
navigation.ejs

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">

  <a class="navbar-brand" href="#">Logo</a>

  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">

    <span class="navbar-toggler-icon"></span>

  </button>

  <div class="collapse navbar-collapse" id="navbarNavDropdown">

    <ul class="navbar-nav">

      <li class="nav-item active">

        <a class="nav-link" href="/">Home </a>

      </li>

      <li class="nav-item">

        <a class="nav-link" href="../shortcourses">Short Courses</a>

      </li>

      <li class="nav-item">

        <a class="nav-link" href="../colleges-universities">Colleges & Universities</a>

      </li>

      <li class="nav-item dropdown">

        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

          Dropdown link

        </a>

        <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">

          <a class="dropdown-item" href="#">Action</a>

          <a class="dropdown-item" href="#">Another action</a>

          <a class="dropdown-item" href="#">Something else here</a>

        </div>

      </li>

    </ul>

  </div>

</nav>

 


footer.ejs

<p class=”text-center text-muted”>&copy; Copyright 2023. Designed by <a href=”https://www.novawebbusiness.com”> Nova Web</a></p>

 

index.ejs (body)

<div class="container-fluid pt-3">

    <h1>HOME</h1>

    <p>

       EJS with Bootstrap Development

    </p>

</div>

 

Step 5:
Step up the server.js

const express = require('express');

const expressEjsLayouts = require('express-ejs-layouts');

const app = express();

const port = 3000;

//set the view js engine and templating engine

app.use(expressEjsLayouts);

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

app.get('/', (req, res) => {

    res.render('pages/index')});

app.get('/about', (req, res) => {

    res.render('pages/about')});

app.get('/shortcourses', (req, res) => {

    res.render('pages/shortcourses')});

app.get('/colleges-universities', (req, res) => {

    res.render('pages/colleges-universities')});

app.listen(port, () => console.log(`Example app listening on port ${port}!`))
There you go. It is very simple to include ejs as your templating engine. Hope it helps