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
Step 1: Understand middleware role
Middleware adds extra functions to Express apps, like parsing data or logging requests.
Step 2: Compare options
Replacing Express or creating databases are not middleware tasks; middleware enhances features.
Final Answer:
To add extra features like parsing or logging easily -> Option A
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
Step 1: Check import style
Modern Express apps use ES modules, so import cors from 'cors'; is correct.
Step 2: Check middleware usage
Middleware must be called as a function: app.use(cors()); not just cors.
Final Answer:
import cors from 'cors'; app.use(cors()); -> Option C
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?
C. app.use(morgan('dev')); if(req.method === 'POST') next();
D. app.use('/post', morgan('dev'));
Solution
Step 1: Understand middleware conditional use
To run middleware only on POST, wrap it in a function checking req.method.
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.