Lesson 25 / 25
Deploying an Express App
Prepare Express for production with NODE_ENV, PORT, a process manager and platform hosting.
The checklist
Set NODE_ENV=production, load secrets from environment variables, listen on process.env.PORT, and put a reverse proxy (nginx, or the platform's own) in front.
Keep it alive
Use a process manager like PM2, or let a platform (Render, Railway, Fly.io) manage restarts — plain node server.js dies on any uncaught crash.
Final quiz 1 of 8
Final quiz
Quick check: What is Express middleware?
- A database
- A template
- A function (req, res, next) that runs during a request
- A CSS file
Answer
A function (req, res, next) that runs during a request — Middleware inspects requests and calls next.
Final quiz 2 of 8
Final quiz
Quick check: Where do route parameters like :id appear?
- req.query
- req.body
- req.headers
- req.params
Answer
req.params — Colon segments are captured into req.params.
Final quiz 3 of 8
Final quiz
Quick check: Which middleware parses JSON bodies?
- express.json()
- express.static()
- express.Router()
- cors()
Answer
express.json() — Without it req.body is undefined.
Final quiz 4 of 8
Final quiz
Quick check: How many arguments does error middleware take?
- 2
- 4
- 3
- 1
Answer
4 — (err, req, res, next) identifies an error handler.
Final quiz 5 of 8
Final quiz
Quick check: Which status code suits invalid input?
- 200
- 500
- 400
- 301
Answer
400 — 400 Bad Request signals a client error.
Final quiz 6 of 8
Final quiz
Quick check: What does express.Router help with?
- Parsing forms
- Hashing passwords
- Serving fonts
- Organizing routes into modular files
Answer
Organizing routes into modular files — Routers mount groups of routes under a prefix.
Final quiz 7 of 8
Final quiz
Quick check: Who enforces CORS restrictions?
- The browser
- The database
- Express
- The OS
Answer
The browser — Servers send headers; browsers decide.
Final quiz 8 of 8
Final quiz
Quick check: Why export app without calling listen for tests?
- It is faster to write
- supertest can use the app without opening a port
- listen is deprecated
- It enables HTTPS
Answer
supertest can use the app without opening a port — Tests import the app and make in-process requests.