Description
In this course, you will learn :
- Grasp how NodeJS works under the hood.
- Understand the Javascript and technical concepts behind NodeJS.
- Structure a Node application in modules.
- Understand and use the Event Emitter.
- Understand Buffers, Streams, and Pipes.
- Build a Web Server in Node and understand how it really works.
- Use npm and manage node packages.
- Build a web application and API more easily using Express.
- Connect to a SQL or Mongo database in Node.
- Understand how the MEAN stack works.
- Be the coder that explains NodeJS to everyone else because you understand it better than anyone else.
Syllabus :
1. V8: The Javascript Engine
- Conceptual Aside: Processors, Machine Language, and C++
- Javascript Aside: Javascript Engines and The ECMAScript Specification
- V8 Under the Hood
- Adding Features to Javascript
2. The Node Core
- Conceptual Aside: Servers and Clients
- What Does Javascript Need to Manage a Server?
- The C++ Core
- The Javascript Core
- Downloading Lecture Source Code
3. Modules, Exports, and Require
- Conceptual Aside: Modules
- Javascript Aside: First-Class Functions and Function Expressions
- Let's Build a Module
- Javascript Aside: Objects and Object Literals
- Javascript Aside: Prototypal Inheritance and Function Constructors
- Javascript Aside: By Reference and By Value
- Javascript Aside: Immediately Invoked Function Expressions (IIFEs)
- How Do Node Modules Really Work?: module.exports and require
- Javascript Aside: JSON
- More on require
- Module Patterns
- exports vs module.exports
- Requiring Native (Core) Modules
- Modules and ES6
- Web Server Checklist
4. Events and the Event Emitter
- Conceptual Aside: Events
- Javascript Aside: Object Properties, First Class Functions, and Arrays
- The Node Event Emitter
- Javascript Aside: Object.create and Prototypes
- Inheriting From the Event Emitter
- Javascript Aside: Node, ES6, and Template Literals
- Javascript Aside: .call and .apply
- Inheriting From the Event Emitter
- Javascript Aside: ES6 Classes
5. Asynchronous Code, libuv, The Event Loop, Streams, Files, and more…
- Javascript Aside: Javascript is Synchronous
- Conceptual Aside: Callbacks
- libuv, The Event Loop, and Non-Blocking Asynchronous Execution
- Conceptual Aside: Streams and Buffers
- Conceptual Aside: Binary Data, Character Sets, and Encodings
- Buffers
- ES6 Typed Arrays
- Javascript Aside: Callbacks
- Files and fs
- Streams
- Conceptual Aside: Pipes
- Pipes
- Web Server Checklist
6. HTTP and being a Web Server
- Conceptual Aside: TCP/IP
- Conceptual Aside: Addresses and Ports
- Conceptual Aside: HTTP
- http_parser
- Let's Build a Web Server in Node
- Outputting HTML and Templates
- Streams and Performance
- Conceptual Aside: APIs and Endpoints
- Outputting JSON
- Routing
- Web Server Checklist
7. NPM: the Node Package Manager
- Conceptual Aside: Packages and Package Managers
- Conceptual Aside: Semantic Versioning (semver)
- npm and the npm registry: Other People's Code
- init, nodemon, and package.json
- npm Global Installation
- init, nodemon, and package.json - Part 2
- Using Other People's Code
8. Express
- Installing Express and Making it Easier to Build a Web Server
- Routes
- Static Files and Middleware
- Templates and Template Engines
- Querystring and Post Parameters
- RESTful APIs and JSON
- Structuring an App
9. Javascript, JSON, and Databases
- Conceptual Aside: Relational Databases and SQL
- Node and MySQL
- Conceptual Aside: NoSQL and Documents
- MongoDB and Mongoose
- Web Server Checklist
10. The MEAN stack
- MongoDB, Express, AngularJS, and NodeJS
- AngularJS: Managing the Client
- Conceptual Aside: Angular 1, Angular 2, React, and more…
- Working with The Full Stack (and being a Full Stack Developer) - Part 1