Open In App

Pug View Engine – Iteration

Last Updated : 15 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Pug is a template engine for NodeJS and browsers to render dynamic reusable content. At compile time, the template engine compiles our Pug template code to HTML. Pug has many powerful features like conditions, loops, includes, and mixins using which we can render HTML code based on user input or reference data.

Pug also supports JavaScript natively, hence using JavaScript expressions, we can format HTML code. This approach allows us to reuse static web pages which have dynamic data. Angular brackets are not used while specifying the tags.

Iteration in Pug:

Iteration is the execution of a set of instructions repeatedly until the condition is met. It reduces the task of manually writing the same code again and again. Iteration is used to handle large amounts of data. Due to flexibility, we can iterate over different data structures like arrays, lists, or objects. In pug we can iterate using the each and while method.

Syntax:

ul 
each value in [ element of the array ]
li = value
  • each method is used to iterate over the array and the object.

Syntax:

-  var n=value
ul
- while(condition)
//- update condition
li =n

Approach to Implement Iteration in Pug:

  • Express Setup: Initializes an Express.js server.
  • Setting View Engine: Configures Pug as the view engine for rendering templates.
  • Routing: Defines a single route for the root URL (/). When accessed, it renders the Pug template.
  • Pug Template: The Pug template defines the structure and content of the HTML page. It includes iteration items with headers
  • Styling: Internal CSS is used within the Pug template (style.) to set margins and styles for headings and other components.

Steps to Implement Iteration in Pug View Engine:

Step 1: Create a NodeJS Application using the following command:

npm init -y

Step 2: Install the required dependencies using the following command:

npm i pug express

Step 3: Create a views folder that contains the pug file.

Folder Structure:

Folder-Structure

Folder Structure


The updated dependencies in package.json file will look like:

"dependencies": {
"express": "^4.18.2",
"pug": "^3.0.2"
}

Example 1 : Below is an example of Iteration using each method.

HTML
doctype html
html
  head
    title GeeksforGeeks Pug
    style.
      h1,h3 {
        margin: 1rem ;
        text-align: center;
        color:green;
      }
      ul{
        
        margin:1rem;
        padding: 2rem;
        border: 2px solid red;
      }

  body
    h1 Welcome to GeeksforGeeks
    div
      h3 Iteration using each method in Array
      ul
        each val in [1,2,458]
          li=val
      h3 Iteration using each method in Array along with index
      ul
        each value,index in ['Anil','Ajay']
          li='Index  '+ index + ":"+value
      h3 Iteration using each method in Object
      ul
        each value,key in {1:'Ram',2:"Anil"}
          li='Key  '+ key + ":"+value
    
Javascript
//app.js

const express = require("express");
const app = express();
const port = 3000;
app.set("view engine", "pug");
app.get("/", (req, res) => {
  res.render("iteration");
});
app.listen(port, () => {
  console.log(`server is running at http://localhost:${port}`);
});

Output:

Iteration-in-Pug

Iteration in Pug

Explanation of Output:

  • In first block array elements are iterated using the each method.
  • In second block array elements are display along with their index values.
  • In third block key value pair are displayed from the object.

Example 2 : Below is an example of Iteration using while method

HTML
doctype html
html
  head
    title GeeksforGeeks Pug
    style.
      h1,h3 {
        margin: 1rem ;
        text-align: center;
        color:green;
      }
      ul{
        margin:1rem;
        padding: 2rem;
        border: 2px  solid red;
      }

  body
    h1 Welcome to GeeksforGeeks
    div
      h3 Iteration using while method 
      - var n=5;
      ul
        - while (n < 10)
          li= n
          - n++
      h3 Iteration using while method with array
      - var arr=['HTML',"CSS","Javascript"]   
      ul 
        - while(arr.length)
          li= arr.shift()
Javascript
//app.js

const express = require("express");
const app = express();
const port = 3000;
app.set("view engine", "pug");
app.get("/", (req, res) => {
  res.render("iteration");
});
app.listen(port, () => {
  console.log(`server is running at http://localhost:${port}`);
});



Iteration-in-Pugjs

Iteration in Pug.js





Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads