
Discover Node.js and Express to manage http traffic, cover tcp and udp basics, and practice middleware, rendering, and rest api within a structured environment setup and course layout.
Install node and npm on macOS from nodejs.org and verify with node -v and npm -v. Create a test.js file and run it with node test.js in the terminal.
Install nodejs on a Windows PC, include npm, add to the path, and learn to run node programs from the terminal and use npm for express.
Explore the pre-express foundation by explaining http and the basics of tcp and udp, then build a Node.js web server without Express to reveal how Express works.
Explain how tcp/ip enables two computers to talk, including ports and the three-way handshake, and compare udp and tcp, highlighting http's use of tcp for reliable delivery.
Explore how http operates at the application layer, using stateless request-response over tcp, and how http messages are composed of a start line, headers, and a body.
Learn how to set up a node workflow using Visual Studio Code, the built-in terminal, and nodemon for automatic reloads while building an Express server.
Write a basic Node.js HTTP server using the native HTTP module, handling request and response objects, listening on port 3000, and sending headers, body, and status codes.
Learn to build a simple node http server with a basic router on port 3000, serving a home page and 404s, and reading an HTML file using the fs module.
Build a Node.js http server that serves html, css, and images by reading files, routing requests, and returning correct mime types and 404 responses.
Explore Express as a fast, unopinionated, minimalist web framework for Node.js that simplifies routing and middleware, enabling quick API and web app development with JSON handling.
Set up an Express project, install Express with npm, and create an app using express() that handles all routes with app.get and res.send, then listen on port 3000 for testing.
Master basic routing in express by handling http verbs with app.get, app.post, app.put, and app.delete on routes. Test with Postman, then explore app.all.
Learn to serve static files with express by mounting express.static, using a public directory, and delivering images and styles from the root on port 3000.
Explore how Express acts as a router and a web framework built from middleware, using req, res, and next to shape requests and responses through app.use and routes.
Learn how to build an Express app with static files, Json and URL-encoded body parsing, and essential middleware like helmet to secure and simplify request handling.
Learn to respond with json in Express using res.json for ajax requests, changing mime type to application/json, and compare with res.send; test with Postman to inspect headers.
Pause to review Express basics from http and tcp to middleware, routing, and static serving, covering the request-response cycle, headers, body parsing, and common response methods.
Explain server-side rendering with res.render and client-side updates with res.json in Express, showing how templates generate HTML on the server while JSON drives the DOM.
Configure Express with a view engine to render templates. Choose engines like ejs, handlebars, or pug, set the views directory, and render with res.render and data locals.
Discover how Express uses a view engine like EJS to render dynamic HTML by merging server data with templates, then send HTML, CSS, and JavaScript to the browser.
Learn how to render dynamic content with Express and EJS by using wax on wax off, passing data via res.locals, and composing templates with includes and partials.
Explore Handlebars as a rendering engine, compare to EJS, and learn core syntax, nesting, and helpers like each, if, and unless, plus safe escaping.
Explore pug, the indented templating language formerly jade, and compare it with handlebars and ejs. See how indentation and attributes drive rapid template construction.
Learn how to render with templates in express, handle form data with urlencoded, and use cookies to persist a username across login and welcome pages, including redirects and logout.
Explore how the query string passes data through the url using key-value pairs after a question mark, accessed in express via req.query, and surfaced with middleware and res.locals.
Explore express route parameters capturing dynamic url segments with /story/:storyId and req.params.storyId, enabling a single route for multiple stories and optional links, plus app.param middleware.
Learn to securely serve user statements in Express with res.download and a file name, while handling headers already sent and content-disposition.
Discover how Express routers modularize applications by isolating routes and middleware in a dedicated router, then mount it on a path to keep code organized.
Discover how the Express generator scaffolds a full Express app with routes, views, public assets, and npm scripts for rapid setup.
Review the latest Express concepts, focusing on HTTP headers, router use, cookies, req and res handling, deprecated req.params guidance, and testing with Postman.
Master http headers in express by using res.set and req.accepts to shape http messages, while remembering you send http messages, not web pages, following the protocol's headers and body.
Build a rendering fan movie site that pulls currently playing movies from movie db.org, with film pages, IMDb details, budgets, revenues, synopsis, plus search and GitHub login.
Required info for this project
Create a movie fan site with express generator, configure ejs views, install helmet and nodemon, and scaffold a bootstrap-based front end with a reusable navbar and starter routes.
Use the request module to fetch now playing data via the base URL with the API key, handle the callback, and parse the response body into an object with JSON.parse.
Render the API's results by passing parsed data to the template and display posters using a shared image base URL joined with each poster path in a responsive bootstrap grid.
Implement a dynamic /movie/:id route with Express and EJS, fetch the movie data from an API, parse it, and render a single movie page with title, poster, and synopsis.
Implement a server-rendered search feature by posting to /search, capturing movie or actor queries from req.body, encoding the query, querying the API, and rendering results.
Build a small express rest API using seed data from the open movie database, serving json endpoints for movie details, search, and actors while scaffolding with express generator.
Organize an Express app by designing dedicated movie and search routers, mounting them with app.use('/movie') and app.use('/search'), and remove the unused users router.
Build the most popular route by filtering the data array for most popular items, implement API key validation, and paginate results to 20 per page.
Define and test movie routes under /movie, including /movie/:id, /movie/top_rated, and /movie/:id/rating, while adding application-level api key middleware and proper 401 responses.
Build Express movie routes, including top rated with vote average sorting and pages of 20, plus JSON content validation for post and delete with rating checks.
Explore building search routes in an express app with router.use for query validation, enforcing api key presence, and filtering /search/movie and /search/person by title, overview, or name using includes.
Learn how to deploy a Node.js app behind an Apache reverse proxy, using port 3000 internally and http/https through port 80/443 with TLS via Certbot and Let's Encrypt.
Learn how Passport acts as flexible authentication middleware for NodeJS, often with Express, using 502 strategies including GitHub via OAuth to enable user login and secure sessions.
Describe OAuth 2.0 basics, including access delegation and the flow between authorization and resource servers, with client IDs, secrets, callbacks, and Passport strategies.
Learn to integrate Passport authentication with GitHub in a Node.js Express app by configuring the GitHub strategy, installing dependencies, and wiring login routes and callbacks.
Implement Passport with the GitHub strategy, configure client credentials and callback routes, then enable sessions with express-session to persist user data.
You have some notion of what Node, Express, and http are or you wouldn't be here. Node and back-end JavaScript have taken the world by storm, [SOME BIG COMPANY] moved to node and it changed the world, blah blah blah. One of the first things you're going to learn in any node course is about the Express module. But how much do you really learn about it? How to render a page in one template engine? How to make a get and a post route? Most MEAN and MERN stacks students I've met learned Express in a few breaths and then moved on to MongoDB, MySQL, Angular, React, or whatever was in the rest of the tech stack. What is http anyway? Should I even care? It's easy to get 2 inches deep and find you've accomplished your task, but in fact have no idea why it works or how you'd go further. That, in my opinion, is no good for someone who wants to be a great developer!
I've had a lot of students ask for a course on just Express js because they were either overwhelmed when they learned it, or they can't find any detail on it to go further than beginner knowledge. That's what this course is for. We will go through the various pieces of Express in detail so you can know why it behaves the way it does and get the most out of it. Express 5 is currently in alpha, so when it hits beta or full release, and as questions come up, the course will expand accordingly!
Note: this course is not a quick path to launch a webapp with Express/Node. You can get that in 10 minutes in many other places. This course is meant to take a longer, deeper look at what Express js actually does.
I've been using Express since V.2, in 2012 and have seen it do just about everything. It is one of my favorite node modules and consistently one of the most downloaded on npm. There are other awesome technologies that patch into Express that get easily missed. This course will naturally lead into other things like websockets, webRTC, etc. Prepare for one of the most awesome node modules on npm!
Sections:
Environment Setup (skip if you have node installed already)
Before Express... - TCP & HTTP, making an express-less node server
Express 101 - Making a basic web sever with Express
Express 201 - Middleware and Rendering
Express 301 - Req & Res revisited, the router, and the express generator
Rendering Project
API Project
Passport (jwt & local strategy still coming)
Best Practices (Coming...)
Supplemental - connecting to various DBs (very basic - only for those already familiar with a database)