Skip to main content
pelatihan
.org
Learn. Practice. Grow.
Category
EN
Sign in
Sign up
Menu
Node.js Curriculum: 15 Chapters, 109 Lessons — pelatihan.org
Home
/
Catalog
/
Node.js
/
Curriculum
Curriculum
Node.js Curriculum
Learn Node.js online with 109 structured lessons, code examples, and 545 quiz questions.
109 lessons
15 chapters
545 questions
Summaries and key points are free to preview. Full lessons, code examples, and quizzes require a subscription.
01
Node.js Tutorial
9 lessons
01
Node HOME
Node.js is a JavaScript runtime that allows JS code to run outside of the browser, especially on the server side. This page serves as the main gateway to the material: from basic…
02
Node Intro
It was created by Ryan Dahl in 2009 using the V8 engine from Google Chrome so JavaScript could run on the server. It is open source, cross-platform, and follows an event-driven…
03
Node Get Started
To start Node.js you just install it from the official website, and then run the JavaScript file via the node command in the terminal. The same script can be executed directly…
04
Node JS Requirements
To learn Node.js you just need to understand the basics of JavaScript: variables, function, arrays, objects, and asynchronous concepts. Additional knowledge of terminals, HTTP,…
05
Node.js vs Browser
Node.js and the browser both run JavaScript, but the environment is very different. The browser provides users with DOM, window, and event, while the Node provides access to file…
06
Node Cmd Line
Node.js provides a number of command lines to control how the script is executed, such as directly evaluating code, enabling watch mode, or opening a debugger. Understanding this…
07
Node V8 Engine
V8 is an open source JavaScript engine from Google that is at the heart of Node.js. V8 converts JavaScript code into bytecode and then optimizes it into native code through…
08
Node Architecture
The architecture uses a single-threaded event loop pattern to handle many connections at once without creating new threads per request. While blocking operations like file…
09
Node Event Loop
Event loops are mechanisms that enable multiple asynchronous operations to be handled in a single thread. It keeps spinning checking the task queue: from the timer, I/O callback,…
02
Asynchronous
4 lessons
01
Node Async
Asynchronous programming allows Node to complete heavy operations such as file reading without blocking the main thread. This concept is represented by callback, which is a…
02
Node Promises
A promise is an object that represents a value that is not yet available in the future: pending, fulfilled, or rejected. With Promise, the asynchronous chain of operations can be…
03
Node Async/Await
Async/await is the syntax above Promise that makes asynchronous code look like synchronous code without sacrificing the non-blocking nature. Function async always returns the…
04
Node Errors Handling
It provides a variety of strategies for handling errors, from callback error-first, try/catch to Promise, to the uncaughtException handler as the final safety net. The best…
03
Module Basics
7 lessons
01
Node Modules
Node.js breaks down the code into small reusable modules. A module is a JavaScript file that exports a function, object, or value via module.exports. With this pattern, projects…
02
Node ES Modules
In addition to CommonJS, Node.js also supports ES Modules which are the modern standard for JavaScript. The ESM module is declared with import and export, and is active when the…
03
Node NPM
NPM (Node Package Manager) is an official package manager that facilitates the installation, update, and publication of JavaScript libraries. With NPM, you don't have to rewrite…
04
Node package.json
Package.json is the configuration center of the Node.js project: it contains metadata, dependencies, and executable scripts. This file makes the project easy to share because…
05
Node NPM Scripts
NPM scripts allow you to run long commands via a short alias in package.json. You can make a start, test, build, or dev script that calls other tools like tsc, jest, or nodemon.…
06
Node Manage Dep
Dependence management means controlling the packages that a project needs and its version to stay consistent across all machines. NPM uses a semver approach with the prefixes ^…
07
Node Publish Packages
NPM allows you to publish your own library so that others can use it through npm install. Before publishing, complete package.json with a unique name, version, and clear…
04
Core Modules
15 lessons
01
HTTP Module
The Node's built-in HTTP module allows you to create HTTP servers without an additional framework. You create a server with createServer, and then you handle every request and…
02
HTTPS Module
The https module provides the ability to create TLS/SSL encrypted servers and clients, essential for the security of data on the internet. Its use is very similar to the HTTP…
03
File System (fs)
The fs module provides an API for reading, writing, modifying, and deleting files and folders on disk. There are two styles available: asynchronous that does not block the event…
04
Path Module
The path module provides a utility for manipulating string path files securely across platforms. The join, resolve, and normalize functions help to set the path without worrying…
05
OS Module
The OS module channels information about the operating system where the Node runs, such as platform, CPU architecture, total memory, and uptime. This data is useful for logging,…
06
URL Module
The built-in global URL and url modules facilitate parsing and manipulating web addresses into components such as protocols, hosts, pathnames, and queries. This ability is…
07
Events Module
The events module provides the EventEmitter class, the foundation of the event-driven pattern in Node.js. You can broadcast an event with a emitter and hear it on or once. Almost…
08
Stream Module
Stream allows data to be processed partially so that large files or network data do not need to be loaded entirely into memory. The node provides four types of streams: Readable,…
09
Buffer Module
Buffer is a class for representing raw binary data in memory, such as the contents of an image file or network packet. JavaScript doesn't have a built-in binary type, so Buffer…
10
Crypto Module
Crypto modules provide inborn cryptographic capabilities such as hashing, encryption, decryption, and random value creation. You can create a SHA-256 hash to verify integrity or…
11
Timers Module
The timers module provides code execution scheduler such as setTimeout, setInterval, and setImmediate. Timers can be scheduled, canceled with clear, and combined with unref to…
12
DNS Module
The dns module provides access to the DNS resolver system to translate domain names into IP addresses and vice versa. The dns.lookup function is used when an application needs to…
13
Assert Module
The assert module provides a simple assertion function to verify that a condition is correct during testing. If the condition turns out to be wrong, the assertion will throw the…
14
Util Module
The util module provides a variety of helpers often needed when developing Node applications. Its main features are promisify to convert callback API to Promise, inspect to view…
15
Readline Module
The readline module allows reading line by line inputs from streams such as stdin, terminals, or files. You can build an interactive prompt, a CLI menu, or read a large file per…
05
JS & TS Features
5 lessons
01
Node ES6+
Modern ES6 supports JavaScript features upwards such as arrow, template literal, destructuring, class, and spread operators. This ability makes code more concise and expressive.…
02
Node Process
The global process object contains information and control over the Node process running. Through the process you can read the environment variable, the command line argument,…
03
Node TypeScript
TypeScript can be used directly in Node.js projects via a tsc compiler or a modern loader such as tsx. With static data types, errors such as misnames of properties are caught…
04
Node Adv. TypeScript
Advanced TypeScript for Node includes generic, type guard, utility type, and decorator to build secure and easy-to-keep APIs. This ability allows you to create reusable types…
05
Node Lint & Formatting
Linting and formatting keep the quality and consistency of the code throughout the team. ESLint detects risky patterns such as unused variables, while Prettier standardizes…
06
Building Applications
6 lessons
01
Node Frameworks
The web framework accelerates development by providing routing structures, middleware, and built-in integration. Express remains the most popular, while Fastify, Koa, and NestJS…
02
Express.js
Express is a lightweight framework on top of the http module that facilitates route mapping, request handling, and middleware use. You can create REST API with just a few lines…
03
Middleware Concept
Middleware is a function that executes sequentially on each request before reaching the final handler. Each middleware receives req, res, and next so it can log, parse, validate,…
04
REST API Design
REST API is an HTTP-based contract for the CRUD operation on the resource: GET to read, POST to create, PUT/PATCH to update, and DELETE to delete. Endpoints are designed based on…
05
API Authentication
API authentication verifies the identity of the client, whereas authorization determines what can be accessed after login. Commonly used methods are Basic Auth, API Key, and JWT…
06
Node.js with Frontend
Node.js is generally a backend that serves JSON data, while the frontend builds interfaces with HTML, CSS, and frameworks such as React or Vue. When developed, the two often run…
07
Database Integration
24 lessons
01
MySQL Get Started
Node.js can be connected to MySQL using a package such as mysql2 that supports callback and Promise. Once the connection is made with the correct credentials, you can run the…
02
MySQL Create Database
Before storing data, a database must be created first, either through mysql CLI or from a Node script. Once the database is available, the next step is to select it as the…
03
MySQL Create Table
Tables store the data in rows and columns with the data type already specified. The CREATE TABLE command defines a column with its type and boundary, including the primary key as…
04
MySQL Insert Into
INSERT INTO adds new lines to the table, both one line and many at a time. For web applications, use parameterized queries to prevent user values from entering malicious SQL.…
05
MySQL Select From
SELECT is used to read data from one or more tables, complete with clauses such as SELECT, FROM, and column selections. You can select a specific column, count the number of rows…
06
MySQL Where
The WHERE clause filters the line so that only those that meet certain conditions are removed, changed, or deleted. Comparison operators like =, >, LIKE, and IN make filters more…
07
MySQL Order By
ORDER BY sorts the query results based on one or more columns, either up (ASC) or down (DESC). This sequence is important for lists that are displayed to users, such as the…
08
MySQL Delete
The DELETE command deletes the row from the table based on the WHERE condition you specify. Without WHERE, the entire line is deleted so it must be written very carefully. In the…
09
MySQL Drop Table
DROP TABLE permanently deletes a table with all its structure and data, thus differing from DELETE which only deletes rows. This order is destructive and cannot be revoked…
10
MySQL Update
This lesson explains how to update data in the MySQL database from the Node.js application using the mysql2 module. You'll use the SQL UPDATE command with the binding parameters…
11
MySQL Limit
This lesson discusses the LIMIT clause on MySQL queries in Node.js to limit the number of result rows. LIMIT is critical when displaying a list of data so as not to flood the…
12
MySQL Join
This lesson shows how to combine multiple tables with JOIN in a MySQL query from Node.js. With JOIN, the customer data and their orders can be read in a single query and then…
13
MongoDB Get Started
This lesson introduces MongoDB to developers: a document-based NoSQL database that stores data in a JavaScript-like JSON format. You learn to install the official mongodb driver,…
14
MongoDB Create DB
This lesson explains how to create and select MongoDB databases from Node.js with client.db(name). Keep in mind, the database in MongoDB is lazy: a new name is actually stored…
15
MongoDB Collection
This lesson discusses collection as a document container in MongoDB, equivalent to a table in RDBMS but without a strict scheme. You learn to create an explicit collection with…
16
MongoDB Insert
This lesson teaches how to add documents to MongoDB collection from Node.js using insertOne and insertMany. Every document that is saved automatically has a unique IDs that you…
17
MongoDB Find
This lesson discusses reading MongoDB data from Node.js with find(), find().findOne(), and converting the results to arrays. Cursors support chaining such as sort(), limit(), and…
18
MongoDB Query
This lesson deepens the ability to filter MongoDB data with query operators like $gt, $lt, $in, and $or. You're going to blend a few conditions into one filter for a precision…
19
MongoDB Sort
This lesson explains the sequencing of MongoDB query results from Node.js using the sort() method. You can sort it based on one or more columns with a value of 1 for ascending…
20
MongoDB Delete
This lesson teaches deleting MongoDB documents from Node.js by deleteOne and deleteMany. You learn to set up filters to delete only the targeted documents, as well as read…
21
MongoDB Drop Collection
This lesson explains how to delete MongoDB collection entirely by drop() or db.dropCollection(name). Drop deletes the entire document, index, and definition collection in one…
22
MongoDB Update
This lesson teaches updating MongoDB documents from Node.js with updateOne, updateMany, and replaceOne. You use operators like $set, $inc, and $push to change some or all of the…
23
MongoDB Limit
This lesson discusses limiting the number of MongoDB query results using limit() and skip() on the find cursor. With the page-1*limit pattern you can build a memory-saving…
24
MongoDB Join
This lesson introduces $lookup, the way MongoDB combines a collection similar to JOIN in SQL. You'll pull the order data and user profiles into one pipeline aggregation. In…
08
Advanced Communication
3 lessons
01
GraphQL
This lesson introduces GraphQL to the Node.js ecosystem: a query language where the client requests exactly the data needed from an endpoint. You learn to define a schema with…
02
Socket.IO
This lesson discusses Socket.IO, a WebSocket-based real-time two-way communication library for Node.js applications. You'll create a server with http.createServer and then…
03
WebSockets
This lesson explains WebSocket, a two-way communication protocol over a single TCP connection that remains open. You'll understand the difference with HTTP polls and see how to…
09
Testing & Debugging
4 lessons
01
Node Adv. Debugging
This lesson discusses advanced debugging techniques such as using built-in inspectors, programmed breakpoints, and inspections through various transports. You'll learn to use…
02
Node Testing Apps
This lesson explains why testing is important in applications and how to get started. You'll learn three main levels: unit test, integration test, and end-to-end test. In…
03
Node Test Frameworks
This lesson compares popular testing frameworks for Node.js such as Jest, Mocha, Jasmine, and Ava. You'll understand the features that each one brings: Jest comes all-in-one with…
04
Node Test Runner
This lesson discusses the built-in test runner Node.js, which is the node:test module available since Node 18. You can write a test with require('node:test') and an assertion…
10
Node.js Deployment
5 lessons
01
Node Env Variables
This lesson describes environment variables as a way to configure Node.js applications from outside the code. You read values through process.env, such as PORT, DATABASE_URL, and…
02
Node Dev vs Prod
This lesson explains the differences between development and production environments in the application. You'll understand the role of NODE_ENV, the difference in levels, the…
03
Node CI/CD
This lesson introduces CI/CD to the Node.js project: an automated stream builds, tests, and releases applications whenever there is a change in code. You'll learn the concept of…
04
Node Security
This lesson discusses the security practices of applications: from dependencies, input validation, to header and credential protection. You'll understand common threats like…
05
Node Deployment
This lesson discusses modern application deployment strategies, from Docker containers, PaaS platforms such as Railway/Render, to Kubernetes orchestrators. You'll understand the…
11
Perfomance & Scaling
6 lessons
01
Node Logging
This lesson discusses logging on the application, from native P1 to libraries such as Winston and Pino. You'll learn to select the log levels (error, warn, info, debug), write…
02
Node Monitoring
This lesson explains the monitoring and observability of applications through three pillars: metrics, logs, and traces. You'll understand the concept of health checks,…
03
Node Performance
This lesson discusses application performance optimization: understanding event loops, avoiding block work on the main thread, and using caching. You also learn the techniques of…
04
Child Process Module
This lesson describes the child_process module for running external processes from Node.js, such as shell commands or other programs. You'll use spawn, exec, execFile, and fork…
05
Cluster Module
This lesson discusses cluster modules that allow a single application to run on multiple processes to utilize the entire CPU core. Because they are single-threaded per process,…
06
Worker Threads
This lesson discusses worker_threads, how to run CPU-bound code on separate threads in a single process. Unlike clusters, workers share memory through SharedArrayBuffer and…
12
Node.js Advanced
9 lessons
01
Microservices
This lesson explains the application of microservice patterns with Node.js: breaking down large applications into small services that communicate via an API or message. You'll…
02
Node WebAssembly
This lesson introduces WebAssembly (Wasm) in the Node.js environment: running high-form binary modules compiled from languages such as C/C++ and Rust. Node.js can load .wasm…
03
HTTP2 Module
This lesson discusses the built-in HTTP2 module that implements the HTTP/2 protocol. You'll understand multiplexing, header compression (HPACK), and server push that makes page…
04
Perf_hooks Module
This lesson discusses built-in perf_hooks modules for measuring code performance with high precision. You'll use performance.now() for short timing,…
05
VM Module
This lesson discusses the built-in vm (virtual machine) module that evaluates JavaScript code in the context of a limited sandbox. You'll use vm.runInNewContext and…
06
TLS/SSL Module
This lesson discusses the tls module for making encrypted connections (HTTPS, FTPS, and other secure protocols) in Node.js. You'll understand the concept of certificates, private…
07
Net Module
This lesson discusses the net modules for TCP socket-level network communication at Node.js. You'll create TCP servers and clients with net.createServer and net.connect, then…
08
Zlib Module
This lesson discusses the zlib modules for data compression and decompression in Node.js, supporting gzip, deflate, and brotli. You'll use both synchronous and stream methods to…
09
Real-World Examples
This lesson summarizes real-world applications of the REST API: server REST, chat applications, scrapers, task queue services, and more. Each example shows a combination of…
13
Hardware & IoT
8 lessons
01
RasPi Get Started
This lesson introduces Raspberry Pi as a device for running applications, specifically IoT and home automation projects. You'll understand how to set up a Raspberry Pi, install…
02
RasPi GPIO Introduction
This lesson introduces GPIO programming from Node.js, specifically with the onoff or rpi-gpio library. You'll learn to set the pin direction, write the HIGH/LOW values, and read…
03
RasPi Blinking LED
This lesson guides the most classic project on Raspberry Pi: turning on and off the flashing LEDs from the Node.js. You're going to frame the LED with the resistor to the GPIO…
04
RasPi LED & Pushbutton
This lesson combines the output and input of GPIO: LEDs that light up when a button is pressed on a Raspberry Pi. You'll configure one pin as input and one pin as output, and…
05
RasPi Flowing LEDs
This lesson developed the LED project into a flowing effect that wipes out several LEDs in a row. You'll learn the setup of many pins through arrays, string repetitions, and…
06
RasPi WebSocket
This lesson builds a complete application: a web server on Raspberry Pi that controls GPIO via WebSocket so that the button/LED status appears in real time in the browser. You're…
07
RasPi RGB LED WebSocket
This lesson developed the IoT project into a color-modified RGB LED from a browser via WebSocket. You'll understand how to combine three channels of red, green, and blue to…
08
RasPi Components
This lesson introduces the basic electronic components commonly used with Raspberry Pi, from resistors, LEDs, buttons, temperature sensors, to relay. You'll understand the…
14
Resources & Tools
4 lessons
01
Node.js Server
This lesson explains how to create a basic HTTP server with built-in HTTP modules. You'll understand the request-response pattern, read the method, URL, and body of the request,…
02
Node.js Pratice Problems
This page contains a collection of practical exercises to test your understanding of built-in modules, asynchronousness, and mini projects. Regular exercise makes the concept a…
03
Node.js Syllabus
This syllabus compiles a sequential learning curriculum, from the basics of JavaScript and event loops, built-in modules, to advanced topics such as database, security, and…
04
Node.js Study Plan
The study plan sets a study schedule over several weeks with clear learning goals and results for each stage. You'll split your time between reading the concept, writing the…