Bird
Raised Fist0
Expressframework~5 mins

Third-party middleware installation in Express

Choose your learning style10 modes available
Introduction

Middleware helps your Express app do extra tasks like parsing data or logging. Third-party middleware is ready-made code you can add easily.

You want to handle JSON data sent by users.
You need to log every request to your server.
You want to add security features like helmet.
You want to compress responses to make them faster.
You want to handle cookies in your app.
Syntax
Express
npm install middleware-package-name

const middleware = require('middleware-package-name');
app.use(middleware(options));
First, install the middleware package using npm.
Then, import it in your app and add it with app.use().
Examples
This installs and uses morgan to log requests in a short format.
Express
npm install morgan

const morgan = require('morgan');
app.use(morgan('tiny'));
This installs and uses cors to allow cross-origin requests.
Express
npm install cors

const cors = require('cors');
app.use(cors());
This installs and uses helmet to add security headers.
Express
npm install helmet

const helmet = require('helmet');
app.use(helmet());
Sample Program

This program installs morgan middleware to log every request in a developer-friendly format. When you visit the homepage, it shows a message and logs the request in the console.

Express
const express = require('express');
const morgan = require('morgan');

const app = express();

// Use morgan middleware to log requests
app.use(morgan('dev'));

app.get('/', (req, res) => {
  res.send('Hello, middleware!');
});

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});
OutputSuccess
Important Notes

Always install middleware packages before using them.

Order matters: place middleware before routes to affect requests properly.

Some middleware needs options to work correctly; check their docs.

Summary

Third-party middleware adds useful features to Express apps easily.

Install with npm, then add with app.use().

Use middleware before your routes to handle requests properly.

Practice

(1/5)
1. What is the main purpose of third-party middleware in an Express app?
easy
A. To add extra features like parsing or logging easily
B. To replace the Express framework completely
C. To write HTML pages automatically
D. To create a database connection

Solution

  1. Step 1: Understand middleware role

    Middleware adds extra functions to Express apps, like parsing data or logging requests.
  2. Step 2: Compare options

    Replacing Express or creating databases are not middleware tasks; middleware enhances features.
  3. Final Answer:

    To add extra features like parsing or logging easily -> Option A
  4. Quick Check:

    Middleware adds features = A [OK]
Hint: Middleware adds features, not replaces core framework [OK]
Common Mistakes:
  • Thinking middleware replaces Express
  • Confusing middleware with database tools
  • Assuming middleware generates HTML pages
2. Which code snippet correctly installs and uses the cors middleware in an Express app?
easy
A. const cors = require('cors'); app.use(cors());
B. import cors from 'cors'; app.use(cors);
C. import cors from 'cors'; app.use(cors());
D. const cors = require('cors'); app.use(cors);

Solution

  1. Step 1: Check import style

    Modern Express apps use ES modules, so import cors from 'cors'; is correct.
  2. Step 2: Check middleware usage

    Middleware must be called as a function: app.use(cors()); not just cors.
  3. Final Answer:

    import cors from 'cors'; app.use(cors()); -> Option C
  4. Quick Check:

    Import + call middleware function = C [OK]
Hint: Import middleware and call it with () in app.use [OK]
Common Mistakes:
  • Forgetting parentheses after middleware name
  • Mixing require and import syntax
  • Using app.use(cors) without calling it
3. What will be the output when this Express app code runs and receives a JSON POST request?
import express from 'express';
import bodyParser from 'body-parser';
const app = express();
app.use(bodyParser.json());
app.post('/data', (req, res) => {
  res.send(req.body.name);
});
app.listen(3000);
medium
A. The server responds with an empty string
B. The server responds with '[object Object]'
C. The server crashes with a syntax error
D. The server responds with the value of 'name' from the JSON body

Solution

  1. Step 1: Understand bodyParser.json()

    This middleware parses JSON request bodies and sets req.body to the parsed object.
  2. Step 2: Check response code

    The route sends back req.body.name, so the response is the 'name' value from JSON.
  3. Final Answer:

    The server responds with the value of 'name' from the JSON body -> Option D
  4. Quick Check:

    bodyParser parses JSON, response sends req.body.name = B [OK]
Hint: bodyParser.json() parses JSON, so req.body has data [OK]
Common Mistakes:
  • Not using bodyParser.json(), so req.body is undefined
  • Expecting raw JSON string instead of parsed object
  • Sending req.body instead of req.body.name
4. Identify the error in this Express app code using helmet middleware:
import express from 'express';
import helmet from 'helmet';
const app = express();
app.use(helmet);
app.get('/', (req, res) => res.send('Hello'));
app.listen(3000);
medium
A. helmet is imported incorrectly
B. helmet middleware is not called as a function
C. app.listen is missing a callback
D. app.get route is missing a response

Solution

  1. Step 1: Check middleware usage

    Middleware must be called as a function: app.use(helmet()); not app.use(helmet);.
  2. Step 2: Verify other code parts

    Import is correct, app.listen works without callback, and route sends response properly.
  3. Final Answer:

    helmet middleware is not called as a function -> Option B
  4. Quick Check:

    Middleware must be called with () = A [OK]
Hint: Always call middleware with () in app.use [OK]
Common Mistakes:
  • Using app.use(helmet) instead of app.use(helmet())
  • Thinking app.listen needs a callback
  • Forgetting to send response in route
5. You want to add morgan logging middleware only for POST requests in your Express app. Which code correctly applies this?
hard
A. app.use((req, res, next) => { if(req.method === 'POST') morgan('dev')(req, res, next); else next(); });
B. app.post('*', morgan('dev'));
C. app.use(morgan('dev')); if(req.method === 'POST') next();
D. app.use('/post', morgan('dev'));

Solution

  1. Step 1: Understand middleware conditional use

    To run middleware only on POST, wrap it in a function checking req.method.
  2. Step 2: Analyze options

    app.use((req, res, next) => { if(req.method === 'POST') morgan('dev')(req, res, next); else next(); }); calls morgan only if method is POST, else calls next(). Others either apply to wrong paths or misuse middleware.
  3. Final Answer:

    app.use((req, res, next) => { if(req.method === 'POST') morgan('dev')(req, res, next); else next(); }); -> Option A
  4. Quick Check:

    Conditional middleware call for POST = D [OK]
Hint: Wrap middleware in function checking req.method for selective use [OK]
Common Mistakes:
  • Using app.use with path that doesn't match POST method
  • Calling middleware without next() in else branch
  • Trying to use app.post with middleware incorrectly
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