Roadmap
1. Introduction
2. Basics of JavaScript
3. Modules
a. CommonJS vs ESM
b. Custom Modules
c. Global Keyword
4. NPM
a. Global Install vs Local Install
b. Creating Packages
5. Error Handling
a. Error types
b. Uncaught Exceptions
c. Handling Async Errors
d. Stack Trace
e. Using Debugger
6. Async Programming
a. Promises
b. Async/Await
c. Callbacks
d. SetTimeout
e. SetInterval
f. SetImmediate
g. Process.nextTick()
7. Working with Files
a. Glob
b. Globby
c. fs-extra
d. Chokidar
e. __dirname
f. __filename
8. Working with APIs
a. HTTP Server
1. HTTP Module
2. Express.js
b. Making API Calls using Axios
c. Authentication
1. JSON Web Token
2. Passport js
9. Keep App Running
a. Nodemon
10. Template Engines
a. Pug
b. Handlebars
11. Working with Database: MySQL
1.
12. Testing using Jest
13. Logging
a. Winston
14. Keep App Running in Production: pm2
a. Pm2
15. Threads
a. Child Process
b. Cluster
c. Worker Threads
16. Streams
17. Debugging
a. Memory Leaks
b. Node Inspect
c. Using APM
18. Built-in Modules
a. fs: dealing with the system files.
b. os: provides information about the operation system.
c. net: to build clients and servers.
d. path: to handle file paths.
e. url: help in parsing URL strings.
f. http: making Node.js transfer data over HTTP.
g. console: to log information in the console.
h. assert: provides a set of assertion tests.
i. process: provides information about, and control over, the current process.
j. cluster: able to create child processes that run simultaneously and share the
same server port.
k. perf_hooks: provides APIs for performance measurement
l. crypto: to handle OpenSSL cryptographic functions.
m. Buffer: provides APIs for handling streams of binary data.
n. DNS: enables name resolution.
o. events: for handling existing events and creating custom events.
p. child_processes: provides the ability to spawn subprocesses.
q. REPL: provides a Read-Eval-Print-Loop (REPL) implementation that is available
both as a standalone program or in other applications.
r. readline: provides an interface for reading data from a Readable stream one line
at a time.
s. util: supports the needs of Node.js internal APIs.
t. querystring: provides utilities for parsing and formatting URL query strings.
u. string_decoder: provides an API for decoding Buffer objects into strings.
v. tls: provides an implementation of the Transport Layer Security (TLS) and Secure
Socket Layer (SSL) protocols.
Connection pooling
Redis (caching)
Bull (background processes/jobs)