🌍 freeCodeCamp · subject
freeCodeCamp Back End Development and APIs Syllabus
Every chapter and topic of Back End Development and APIs examined in freeCodeCamp — 5 chapters, 17 topics, plus 50 flashcards written against it.
Back End Development and APIs syllabus — full chapter and topic list
Expand any chapter to see its topics and sub-topics. This is the whole examinable outline for Back End Development and APIs in freeCodeCamp, not a summary of it.
-
Managing Packages with npm
2 topics- package.json
- Dependencies and Scripts
-
Node.js and Express
4 topics- Serving Files and Routes
- Middleware
- Handling POST and Query Data
- Environment Variables
-
MongoDB and Mongoose
3 topics- Schemas and Models
- CRUD Operations
- Queries and Chaining
-
Building Web APIs
3 topics- RESTful Design
- JSON Responses
- Request Parsing
-
Certification Projects
5 topics- Timestamp Microservice
- Request Header Parser
- URL Shortener Microservice
- Exercise Tracker
- File Metadata Microservice
Back End Development and APIs flashcards for freeCodeCamp
18 of 50 cards from the Back End Development and APIs deck — real questions with worked answers.
What is the purpose of the package.json file in a Node.js project?
It is the central configuration file of a Node.js project: a JSON document at the project root that stores metadata (name, version, description, author, license) and lists dependencies and scripts, allowing npm to install and manage the project.
Which two fields are the only mandatory fields in package.json?
"name" and "version". Every package.json must include both for npm to publish or manage the package.
In package.json, what is the difference between "dependencies" and "devDependencies"?
"dependencies" lists packages required at runtime in production; "devDependencies" lists packages needed only during development and testing (e.g., linters, test frameworks). Production installs (npm install --production) skip devDependencies.
In semantic versioning "MAJOR.MINOR.PATCH", what does each number represent?
MAJOR changes when there are incompatible/breaking API changes, MINOR when functionality is added in a backward-compatible way, and PATCH when backward-compatible bug fixes are made.
What do the tilde (~) and caret (^) prefixes mean in a package.json dependency version like ~1.2.3 or ^1.2.3?
~1.2.3 allows only patch updates (any 1.2.x). ^1.2.3 allows minor and patch updates (any 1.x.x) but not a new major version. No prefix pins the exact version.
What does the "scripts" section of package.json do, and how do you run a script named "start"?
It defines named shell commands for the project (build, test, start, etc.). Run them with npm run <name>; "start" and "test" are special and can be run directly as npm start or npm test.
How do you create a basic Express application and start it listening on port 3000?
const express = require('express'); const app = express(); then app.listen(3000) starts the server. Route handlers are attached to app before listening.
In Express, how do you respond to a GET request at the root path with the string "Hello Express"?
app.get('/', (req, res) => res.send('Hello Express')); — app.get registers a handler for GET requests at the given path, and res.send() sends a string response.
How does an Express server send a file (e.g., an HTML page) as a response?
With res.sendFile(path), which requires an absolute path — conventionally built as __dirname + '/views/index.html'. It sets the correct Content-Type based on the file extension.
How do you serve static assets (CSS, images, scripts) from a folder called "public" in Express?
Mount the built-in static middleware: app.use('/public', express.static(__dirname + '/public')); Files in the folder are then served directly at the /public path.
What is middleware in Express?
A function with signature (req, res, next) that executes during the request-response cycle. It can inspect or modify req and res, end the response, or call next() to pass control to the next middleware/handler in the chain.
What happens if an Express middleware function neither sends a response nor calls next()?
The request hangs: the response is never completed and the client eventually times out, because control is never passed on and nothing ends the cycle.
What is the difference between app.use() and app.get() when mounting middleware in Express?
app.use() mounts middleware for all HTTP methods (optionally restricted to a path prefix), while app.get() (and app.post(), etc.) attaches a handler only for that specific HTTP method and exact route.
Why does the order in which middleware is mounted matter in Express?
Express executes middleware in the order it is mounted. A middleware mounted after a route will never run for that route, so things like loggers and body parsers must be mounted before the routes that need them.
How do you chain multiple handlers on a single route in Express?
Pass them in sequence, e.g. app.get('/user', middlewareFn, finalHandler). Each middleware calls next() to hand off; data can be shared by attaching properties to the req object.
In Express, what is the difference between route parameters (req.params) and query parameters (req.query)?
Route parameters are named segments of the path defined with a colon (e.g., /user/:id gives req.params.id). Query parameters come after the ? in the URL (e.g., ?name=John gives req.query.name) and are typically optional key-value filters.
For the URL GET /name?first=John&last=Doe, how do you access "John" and "Doe" in an Express handler?
req.query.first returns "John" and req.query.last returns "Doe" — Express parses the query string into the req.query object automatically.
What middleware is required in modern Express to read URL-encoded form data and JSON bodies from POST requests?
app.use(express.urlencoded({ extended: false })) for HTML form data and app.use(express.json()) for JSON bodies. (Older tutorials use the body-parser package, which these built-ins replaced.) The parsed data appears on req.body.
Planning Back End Development and APIs for freeCodeCamp
Back End Development and APIs is about 12% of the freeCodeCamp syllabus by topic count — 17 of 145 topics, spread over 5 chapters. At roughly 45 minutes per topic plus 12 minutes per sub-topic, a first pass runs to about 15 hours.
The heaviest chapters are Certification Projects (5 topics), Node.js and Express (4 topics), MongoDB and Mongoose (3 topics) . Front-load those while your energy is high; the short chapters are better revision filler later.
Work top-down: read the chapter, then tick topics off individually rather than marking the whole chapter done. Sub-topics are where silent gaps hide.
Back End Development and APIs (freeCodeCamp) FAQ
What is in the freeCodeCamp Back End Development and APIs syllabus?
Back End Development and APIs is split into 5 chapters — Managing Packages with npm, Node.js and Express, MongoDB and Mongoose, Building Web APIs and Certification Projects, containing 17 topics and 0 sub-topics in total.
How is Back End Development and APIs structured in the freeCodeCamp syllabus?
5 chapters. Back End Development and APIs accounts for about 12% of the topics in the whole freeCodeCamp syllabus (17 of 145).
How long should I spend on Back End Development and APIs for freeCodeCamp?
Budget around 15 hours for a first pass through Back End Development and APIs — about 45 minutes per topic plus 12 minutes per sub-topic across its 17 topics. Add revision cycles on top.
Are there flashcards for freeCodeCamp Back End Development and APIs?
Yes — a 50-card Back End Development and APIs deck. Sample cards are printed on this page, and the full deck is free in the Examius app with spaced repetition scheduling.