
Trace the origins of Ecmascript and JavaScript, from Netscape and JScript to ECMA International's standardization (Ecmascript 262) and the rise of ES6 modern JavaScript features.
Explore the history of Ecmascript and JavaScript, from the browser wars to ECMA standardization and ES6, and preview the Chrome V8 engine in the next video.
Explore the JavaScript runtime in browsers, focusing on the V8 engine, web APIs, queues, and the event loop. Compare this with the Node.js runtime.
Explore how Node.js opens JavaScript beyond the browser as an open source, cross-platform runtime. Use its V8 and Libuv-backed environment to build websites, APIs, real-time apps, and more.
Set up Node.js and VSCode, then verify with node -v (20.1.0). Run JavaScript in the Node.js REPL or from a file like index.js with node index.js to print hello world.
Compare browser and Node.js environments, noting dom and window exist in the browser but not in Node.js, while Node.js offers file system access and prepares to cover modules.
Explore node.js modules, including local, built-in, and third-party types, and learn that every file is a module, then focus on creating and sharing local modules within your application.
Explore local modules in node.js by creating add.js, loading it into index.js with require, and running node index.js. Understand commonjs, module isolation, and making functions public while keeping others private.
Export the add function via module.exports, import it with require in index.js, and explore default export concepts and renaming in the commonjs Node.js module system.
Node.js module scope isolates each module with an immediately invoked function expression, enabling banana and apple to log to the console without conflicts, preserving encapsulation and reusability.
Learn module scope in Node.js by creating banana and apple modules and importing them into index.js to demonstrate isolated module scope caused by the module wrapper.
Learn how module caching works in Node.js by exporting an instance versus exporting a class, see how require caches modules, and create multiple instances to avoid shared state.
Learn five Node.js import/export patterns, from exporting a single function to exporting multiple helpers, using module.exports, object maps, destructuring, and the exports alias.
Explore how module.exports differs from exports when exporting from a Node.js module, and why using module.exports is safer. Illustrate through examples how reassigning exports breaks the reference and how assigning a new object to module.exports preserves expected behavior.
Learn es modules in node.js, compare commonjs and es modules, and master import export patterns including default and named exports with practical examples.
Import JSON data in Node.js with require, and use watch mode for automatic restarts during development. Explore local modules, their private scope, and importing/exporting patterns in CommonJS and ES modules.
Explore built-in modules in Node.js, learning how core modules like path, events, file system, stream, and http are imported and used.
Explore how the built-in path module in Node.js helps you manipulate file and directory paths using __filename and __dirname, and methods like join, resolve, isAbsolute, and parse.
Explore the callback pattern in Node.js, including higher-order functions, synchronous and asynchronous callbacks, and practical examples like event listeners, file reads, and database or network requests.
Explore the events module and event emitter in Node.js, emit and on listeners, and how non-blocking, event-driven code handles actions like an order pizza with data like size and topping.
Extend the event emitter to build a custom shop module that handles orders and emits events, wiring pizza shop and drink machine with on listeners.
Explore how binary data, character sets, and UTF-8 encoding represent characters and numbers, and how Unicode and ASCII define codes.
Explore streams and buffers in Node.js, processing data in chunks as it arrives, with examples from video streaming and buffer management to prevent memory overuse.
Explore how JavaScript’s synchronous, blocking, and single-threaded nature leads to the need for asynchronous programming, and see how Node.js and the browser enable non-blocking input/output and event-driven execution.
Learn to use node's fs promises module to read files with utf-8 encoding, using then/catch and async/await. Understand when callback-based APIs offer maximum speed.
Explore how node.js streams transfer data in chunks using the fs module, reducing memory usage, and learn about readable, writable, duplex, and transform streams.
Explore how node.js pipes connect readable streams to writable streams, enabling chaining through transform streams, including zlib to create zip files, with practical read/write examples.
Learn to build a simple Node.js API using the built-in http module, returning JSON data by stringifying objects and sending application/json responses, including how to parse JSON on the client.
Create a simple Node.js http server by importing the http module, defining a request listener, sending a 200 response with a content-type header, and listening on port 3000.
Learn how to send JSON responses with Node.js using the built-in HTTP module, convert objects with JSON.stringify, and handle application/json content types to build your first API.
Learn how to send HTML as a response in Node.js by setting the correct content-type, loading HTML from a separate file with fs, and using streams for efficient delivery.
Explore serving dynamic HTML in Node.js by using a simple HTML template and string replacement to inject values like the user's name, reading templates with the fs module.
Explore HTTP module routing in Node.js by mapping request.url to routes like /, /about, and /api, then return HTML or JSON data with appropriate content types.
Learn how Node.js web frameworks simplify server development by abstracting the http module, enabling routing, and leveraging built-in modules like path, events, and fs, and preview Express in upcoming lessons.
Examine Node.js runtime as an environment that runs JavaScript outside the browser, with V8, libuv, C++ libraries for file system and networking, and review its asynchronous, blocking, and single-threaded model.
Libuv is a cross-platform open source library written in C that handles asynchronous non-blocking operations in Node.js using a thread pool and an event loop.
Discover how Node.js executes synchronous and asynchronous code via the event loop, Libuv, and the V8 engine, with timer, IO, and microtask queues.
Explore how Node.js uses libuv and the event loop to coordinate asynchronous code across the call stack, timer queues, IO queues, and microtask queues.
Explore how microtask queues take priority over the timer queue, and how setTimeout tasks queue in first-in, first-out order, with inner next ticks potentially executing before later timeouts.
Explore how the io queue interacts with microtask and timer queues using fs.readFile, nextTick, Promise, and setTimeout. Visualize the event loop and why zero-delay timers cannot guarantee execution order.
Explore how the Node.js event loop processes the io, check, microtask, and promise queues during setImmediate, read file, and related callbacks.
Explore the close queue in the Node.js event loop by tracing a readable stream close event. Close callbacks run after other queue callbacks, illustrating the six queues guiding execution.
Npm is the world's largest software library and a package manager for JavaScript, hosting code in the npm registry and enabling easy installation and updates.
Explore package.json, the npm configuration file that stores a package’s metadata. Learn mandatory fields like name and version and how to create it with npm init.
Learn how to find, evaluate, and install an npm package for a Node.js project, using npm install, and review package.json, package-lock.json, and node_modules.
Learn how to install and use a third-party npm package from the npm registry in Node.js, convert code to CommonJS, and run index to see the greet function in action.
Explore the dependencies field in package.json and how it tracks required npm packages, then install them with npm install or npm i, and understand node_modules and git ignore.
Learn npm versioning through semantic versioning (x, y, z) and major, minor, and patch changes. Understand when to upgrade to specific versions and how patches preserve backward compatibility.
Understand how global npm packages function as standalone command line tools, differ from local dependencies, install them with npm install -g, and use them in Node.js development.
Explore npm scripts, saved in package.json, to bundle common commands like building, starting a development server, and minifying assets; run them with npm run or npm start.
Publish your npm package to the registry by signing in and running npm publish, then verify it in a new project while learning package.json, npm scripts, versioning, and dependencies.
Learn to build command line interface tools with node and npm by creating a basic cli tool, configuring package.json, and adding a bin entry to enable global installation.
Build a node cli that accepts a Pokemon name via options, fetches data from the Pokemon api, and prints the first ten moves using yargs.
Explore building interactive command line tools with node and npm by prompting user input using inquirer, creating forms, and displaying the first ten moves of a chosen Pokemon.
Learn to deploy a Node.js app on cPanel by preparing code, zipping files, creating a subdomain, uploading, installing npm dependencies, configuring the start file, and enabling AutoSSL.
Summarizes core node js concepts from modules to built-in modules like path, fsevents, and HTTP, via npm and command line tools, including third-party modules, plus Express.js, Jest, and TypeScript.
Build a Node.js API with MySQL, connect to a database, and perform insert, update, delete, and retrieve operations using a connection pool and stored procedures.
Configure a MySQL database with Node.js by creating db.js, establishing a MySQL pool, verifying credentials, and starting an Express server on port 3000.
Fetch a list of employees via an express router in the employee controller, expose it at api/employees, and move db queries to a service using async/await.
Implement global error handling in an express app with middleware and catch blocks to return a consistent something went wrong response, and review express 4.0 limits plus async error options.
Use prepared statements in node.js to fetch an employee by id with a question mark placeholder, preventing SQL injection and handling not found cases.
Learn how to delete a database record by employee id using node.js, update the controller and sql query, test with postman, and handle affected rows and not found responses.
Create and test a first store procedure in node.js to insert or update employees using four parameters (id, name, code, salary), returning affected rows for verification.
Build a real-time node.js chat server with socket.io to broadcast messages to all connected browsers, and create a chat interface with a message container, input, and send button.
Establish a socket.io connection to your Node.js server by configuring io on port 3000, and emit and handle chat message events between server and client.
Build a chat feature with node.js by sending messages from a client to the server, displaying them in a message container, and broadcasting via socket.emit to all connected clients.
Broadcast messages to all users connected to the server, excluding the sender, via socket.broadcast, and update the user interface by appending messages to a message container with Bootstrap styling.
Learn to identify message senders in a Node.js chat app by displaying sender names alongside messages, using prompts, socket events, and server broadcasts to manage user connections.
Finish the chat app by broadcasting messages with sender names via the users object and socket ids, and add a disconnect handler to notify participants when users leave.
This comprehensive Node.js course is designed to equip you with all the knowledge and skills necessary to master the platform and become a professional Node.js developer. Whether you're just starting out or already have some experience, you'll gain a deep understanding of Node.js's core concepts and advanced features, enabling you to build fast, scalable, and efficient applications.
What You'll Learn:
Streams and Buffers: Dive into the world of streams and buffers to efficiently manage data flow and optimize performance, a crucial skill for handling large data sets and file systems in Node.js.
Asynchronous Programming: Learn to write asynchronous code using callbacks, promises, and async/await. This essential skill ensures your applications are fast and non-blocking, which is critical for handling multiple requests and operations simultaneously.
Thread Pools in Node.js: Understand how Node.js utilizes thread pools to manage and execute multiple tasks concurrently, helping you maximize performance and responsiveness in your applications.
The Event Loop: Get an in-depth look at the Node.js event loop, the heart of how Node.js handles asynchronous operations. You'll understand how the event loop works to manage and prioritize tasks efficiently.
Publishing Packages on npm: Become a contributor to the Node.js ecosystem by learning how to package, version, and publish your own Node.js modules on npmjs , the world's largest software registry.
Real-World Project:
By the end of this course, you’ll be able to create robust Node.js APIs connected to a MySQL database, ensuring your back-end systems are both dynamic and secure. To showcase your new skills, you will build a real-time chat application, utilizing WebSockets and Node.js to enable real-time communication between users.
This course will give you everything you need to succeed as a Node.js developer, with hands-on projects and real-world applications. Join us today and take your Node.js skills to the next level!