Bird
Raised Fist0
Expressframework~10 mins

EJS template setup in Express - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set EJS as the view engine in Express.

Express
app.set('view engine', '[1]');
Drag options to blanks, or click blank then click option'
Ahandlebars
Bpug
Cejs
Djade
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong template engine name like 'pug' or 'jade'.
Forgetting to set the view engine at all.
2fill in blank
medium

Complete the code to render the 'index' EJS template in an Express route.

Express
app.get('/', (req, res) => {
  res.[1]('index');
});
Drag options to blanks, or click blank then click option'
Asend
Bredirect
Cjson
Drender
Attempts:
3 left
💡 Hint
Common Mistakes
Using res.send instead of res.render.
Trying to render a template without setting the view engine.
3fill in blank
hard

Fix the error in setting the views folder path for EJS templates.

Express
app.set('views', path.[1](__dirname, 'templates'));
Drag options to blanks, or click blank then click option'
Adirname
Bjoin
Cresolve
Dbasename
Attempts:
3 left
💡 Hint
Common Mistakes
Using path.resolve incorrectly or confusing it with join.
Not importing the path module before using it.
4fill in blank
hard

Fill both blanks to set the views folder to 'views' and use EJS as the view engine.

Express
app.set('[1]', path.join(__dirname, 'views'));
app.set('[2]', 'ejs');
Drag options to blanks, or click blank then click option'
Aviews
Bview engine
Cviews engine
Dtemplate engine
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect setting names like 'views engine' or 'template engine'.
Swapping the two setting names.
5fill in blank
hard

Fill all three blanks to render 'profile' template passing a user object with name and age.

Express
app.get('/profile', (req, res) => {
  res.[1]('profile', { [2]: { name: 'Alice', [3]: 30 } });
});
Drag options to blanks, or click blank then click option'
Arender
Buser
Cage
Dsend
Attempts:
3 left
💡 Hint
Common Mistakes
Using res.send instead of res.render.
Passing data with wrong keys or missing properties.

Practice

(1/5)
1. What does the line app.set('view engine', 'ejs') do in an Express app?
easy
A. It creates a new EJS file in the views folder.
B. It installs the EJS package automatically.
C. It tells Express to use EJS as the template engine for rendering views.
D. It starts the Express server with EJS support.

Solution

  1. Step 1: Understand the purpose of app.set

    This method configures Express settings, here it sets the template engine.
  2. Step 2: Identify what 'view engine' setting does

    Setting 'view engine' to 'ejs' tells Express to use EJS to render view files automatically.
  3. Final Answer:

    It tells Express to use EJS as the template engine for rendering views. -> Option C
  4. Quick Check:

    app.set('view engine', 'ejs') = Use EJS [OK]
Hint: Remember: app.set('view engine', 'ejs') enables EJS rendering [OK]
Common Mistakes:
  • Thinking it installs EJS automatically
  • Confusing it with creating files
  • Assuming it starts the server
2. Which of the following is the correct way to render an EJS template named index.ejs with Express?
easy
A. res.render('index.ejs')
B. res.view('index')
C. res.send('index.ejs')
D. res.render('index')

Solution

  1. Step 1: Recall how Express renders templates

    Express uses res.render with the template name without extension.
  2. Step 2: Identify correct syntax

    Passing 'index' (without '.ejs') is correct; Express adds the extension automatically.
  3. Final Answer:

    res.render('index') -> Option D
  4. Quick Check:

    Use res.render('templateName') without extension [OK]
Hint: Use template name without extension in res.render() [OK]
Common Mistakes:
  • Including the .ejs extension in res.render()
  • Using res.send() instead of res.render()
  • Using non-existent res.view() method
3. Given this Express code snippet, what will be the output in the browser?
app.set('view engine', 'ejs');

app.get('/', (req, res) => {
  res.render('greeting', { name: 'Sam' });
});

And the greeting.ejs file contains:
<h1>Hello, <%= name %>!</h1>
medium
A.

Hello, <%= name %>!

B.

Hello, Sam!

C. Error: name is not defined
D.

Hello, !

Solution

  1. Step 1: Understand data passing to EJS

    The object { name: 'Sam' } passes 'Sam' as the value for 'name' in the template.
  2. Step 2: Interpret EJS syntax in template

    <%= name %> outputs the value of 'name' safely, so it becomes 'Sam'.
  3. Final Answer:

    <h1>Hello, Sam!</h1> -> Option B
  4. Quick Check:

    EJS <%= %> inserts variable value [OK]
Hint: EJS <%= %> inserts passed data values directly [OK]
Common Mistakes:
  • Expecting raw template tags to show in output
  • Forgetting to pass data object to render
  • Confusing <%= %> with <% %> (no output)
4. What is wrong with this Express setup for EJS?
const express = require('express');
const app = express();

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

app.get('/', (req, res) => {
  res.render('home.ejs');
});
medium
A. The template name in res.render should not include the '.ejs' extension.
B. EJS must be required explicitly with require('ejs').
C. app.set should be called after app.get.
D. res.render cannot be used inside app.get.

Solution

  1. Step 1: Check usage of res.render

    res.render expects the template name without the file extension.
  2. Step 2: Identify the error in code

    Passing 'home.ejs' includes extension, which causes Express to look for 'home.ejs.ejs'.
  3. Final Answer:

    The template name in res.render should not include the '.ejs' extension. -> Option A
  4. Quick Check:

    Use res.render('templateName') without extension [OK]
Hint: Never add .ejs extension in res.render() call [OK]
Common Mistakes:
  • Adding .ejs extension in res.render()
  • Thinking require('ejs') is mandatory
  • Changing app.set order unnecessarily
5. You want to render a list of users dynamically in an EJS template. Which setup correctly passes the users array and renders it inside users.ejs?
const users = ['Anna', 'Bob', 'Cara'];

app.get('/users', (req, res) => {
  // What goes here?
});

Choose the correct code to replace // What goes here?.
hard
A. res.render('users', { users: users });
B. res.render('users.ejs', { users });
C. res.send('users', { users });
D. res.render('users', users);

Solution

  1. Step 1: Understand how to pass data to EJS

    Data must be passed as an object with keys matching template variables.
  2. Step 2: Check correct syntax for res.render

    Use res.render('templateName', { key: value }) without file extension.
  3. Final Answer:

    res.render('users', { users: users }); -> Option A
  4. Quick Check:

    Pass data as object in res.render(template, data) [OK]
Hint: Pass data as object: res.render('name', {key: value}) [OK]
Common Mistakes:
  • Including .ejs extension in template name
  • Passing array directly instead of inside object
  • Using res.send instead of res.render
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard