Flash messages notify the user about various things as they interact with the application. For example if a login failed, why it failed.
Environment variables are how you keep credentials like API keys secret when you upload your code to a public repository.
Creating nested REST routes to edit and delete comments. Restricting access to routes based on user role.
Checking if user is authorized to edit content by comparing user ID to author ID. Creating middleware function, and dynamic GUI controls based on ID.
Deep diving into Bootstrap 4 navbar classes to get a better understanding of what is happening here, and therefore customize it. The missing documentation for Bootstrap 4 navbars.
Refactoring Express routes into separate modules for organizational purposes, using the Express Router middleware
Implementing user authentication in an Express application using Passport JS. Setting up login and registration forms, authentication routes, and template modification based on authentication.
Understanding the basics of Async Javascript by reviewing Promises, Async Await and Try/Catch Blocks
Promises are a new set of functionality in Javascript that provide an alternative to repetitive nested callback function (AKA callback hell)
Seeding is when we wipe the database and then add a set of filler data, which makes it easy to test when we are making changes. Itโs sort of like Lorem Ipsum, for the database.
Creating local modules in Node to containerize functionality, making them reusable and better organization for your application
Anytime a user can input text data we have to sanitize the input so that they don't inject anything malicious, like a script to drop the database. This is how we sanitize inputs in Express.