
Node.js is an open source, cross-platform runtime that enables server-side web apps with JavaScript. It runs on the V8 engine and uses an event-driven, single-threaded model for fast, full-stack JavaScript.
Install Node.js on Windows by downloading the current version from nodejs.org, running the installer, and verifying the setup with node -v and npm -v.
Install Node.js on macOS by downloading the long-term stable version from nodejs.org, run the installer, verify Node and npm in the terminal, and run a hello world example.
Install node.js on ubuntu using the ppa and commands, verify npm, and run a barebone server that prints hello world on port 3000.
Download and install Visual Studio Code on Windows to use as a versatile code editor with IntelliSense and extensions, supporting languages like JavaScript and C++, and automatic environment variable setup.
Build your first hello world Node.js server by creating a simple project, requiring the http module, and handling requests with a function that responds with hello world on port 3000.
Download and install cmder, a free Windows command line tool that is better than the native prompt, and use dual consoles to run commands across Windows and Linux/Unix.
Master the Node.js debugger to diagnose issues by setting breakpoints, inspecting variables, and stepping through code, including debugging in Visual Studio Code to catch errors like misspellings.
Explore the official Node.js docs to learn using global objects such as setTimeout, setInterval, console.log, and __filename and __dirname. Practice with code that logs timing messages and prints current file.
Create custom modules in node.js by exporting functions with exports or module.exports. Require these modules in your main file to call hello functions in English and Spanish.
learn to read and write files in node.js using the fs module, covering synchronous read/write with readFileSync and writeFileSync, and asynchronous read with readFile and callbacks.
Create and remove directories using the fs module, learn to unlink files, and implement both synchronous and asynchronous operations with callbacks.
Learn the node.js events module and the event emitter pattern for non-blocking, asynchronous data flows. Implement listeners with on, emit events with data, and inherit from EventEmitter.
Learn to read large files with node's readable streams, using fs to create a read stream, handle data events, and assemble chunks into text with optional encoding.
Explore how writable streams in Node.js enable non blocking writes by streaming chunks to a file with fs.createWriteStream and the write method, and compare this approach with writeFile behavior.
Discover how piping connects a readable stream to a writable stream in Node.js, automatically handling data flow from a file to a browser via an http server.
Learn to use node.js to serve an html page by piping file content to the browser, creating an index.html with a green background for a cost estimate page.
Learn to serve json data from a node.js server by sending application/json content to the browser, building a json object, and converting it to a string for transmission.
Node.js basic routing demo shows how to route requests to /, /home, and /about, and return JSON responses or 404 errors by matching requests and piping data to the client.
Learn how npm, the node package manager, helps you install and manage Express modules and dependencies for your projects.
Create a new npm project from scratch with npm init, learn the package.json file and its role, and install dependencies with npm install for a distributable project.
Install npm packages globally using npm install -g, enabling tools like nodemon to watch files and auto restart your node app during development.
Set up a node project, install express, and create an app to define routes like home, about, and contact using get and post methods; start the server on a port.
Learn how to define and use route parameters in Express.js to fetch dynamic data by id or name, and respond with the requested values using req.params.
Learn to use Express with the EJS template engine to render dynamic pages by passing parameters like name and id from routes to views.
Learn how to use JavaScript with EJS in Node.js and Express to render a dynamic list of student subjects by modeling data and iterating with forEach in an EJS template.
Learn what json is, why it is used, and how to create and parse json across languages, including objects, arrays, strings, numbers, booleans, and null.
learn how rest defines resources and representations, identifies them with uris, and uses standard http methods to create, read, update, and delete data in a stateless architecture.
Install the Atom editor on Ubuntu Linux by adding its repository, updating the package list, and completing the apt installation, then launch Atom to open a project and install packages.
Download visual studio code from the official site, unzip, and drag it into the Mac applications folder, then configure the code command in bash profile to open directories.
You'll learn how asynchronous code works in Node and the Node event loop, as well as how to use the event emitter, streams, buffers, pipes, and work with files. We'll see how that leads to building a web server in Node.
We'll dive into web sites, web apps and APIs with Express and learn how Express can save us time as Node developers.
During it all you'll gain a deep understanding of the JavaScript concepts and other computer science concepts that power Node.
NodeJS doesn't have to be hard to learn. The biggest mistake most coding tutorials make is expecting someone to learn simply by imitating others' code. Real world situations are never exactly like the tutorial.
I believe the best way to learn is to understand how a tool works and what it does for you, look at examples, and then try it yourself. That's how this course is built, with the goal to help you both learn and understand NodeJS.