Node.js
Duration: 3 days
Description:
Node.js has become a very popular framework for building the underlying logic of an application. In this course, students will come away with a solid understanding of Node.js, its infrastructure, and supporting tools.
Objectives:
-
Master the node.js development environment
-
Learn how to effectively debug node.js applications
-
Learn how to package your node.js components
-
Learn how to build a web-site using node.js
-
Learn some of the more popular frameworks for node.js
Prerequisites:
Experience with JavaScript development.
Audience
JavaScript developers
Outline
Introduction to Node.js
-
What is Node.js?
-
History of Node.js
-
Why is Node.js important?
-
Industry use cases and the result of applying Node.js in the enterprise
-
How does Node.js work?
-
Other asynchronous frameworks
-
Node.js components
-
Node Core
-
Userland
-
What do we mean by event-driven?
-
Blocking vs. non-blocking I/O
-
V8 and JavaScript
-
The EchoServer
Asynchronous programming techniques
-
Synchronous vs. asynchronous programming
-
ES6
-
JavaScript closures
-
Callback pattern
-
Event emitters and listeners
-
Exceptions and error handling
-
Managing identities in callbacks
-
Flow control
-
Deferring function execution
-
Controlling the Node event loop
Modules
-
What is a Module?
-
Understanding the anatomy of a module
-
Package management
-
NPM and node_modules
-
Semver
-
Writing your own module
How to debug Node.js?
-
Embedded debugging code
-
Node.js’ debugging client
-
Debugging with IDEs
-
Chrome Developer Tools
-
Node Debugging Guide
-
Best practices
Test-driven (TDD) development in Node.js
-
Unit testing in Node
-
Assert module
-
Nodeunit
-
Mocha
-
Other testing frameworks
Accessing the file system
-
File system moduleĀ fs
-
File statistics
-
Watching file modifications
-
Reading files
-
Writing to files
Streams and buffers
-
Reading
-
Writing
-
Pipes
-
Chaining
-
Handling binary data
Networking
-
The networking moduleĀ net
-
Creating servers
-
Creating networking clients
Building web servers
-
Node.js Hello World Server
-
Servers
-
Responses
-
Requests
-
URLs
-
Query Strings
-
Clients
-
Security with HTTPS
Express
-
What is Express?
-
Middleware
-
Error handling
-
Generating an application skeleton
-
Configuration
-
Routing
-
Handling downloads and uploads
-
Authentication
Express middleware
-
Cookies
-
Body parsing
-
Logging
-
Sessions
-
Method override
-
Basic webserver functionality
-
VHost
-
Express-session
-
CSRF
-
Compression
-
Serve-favicon
-
Serve-static
-
Serve-index
Restful express
-
What is REST?
-
REST and express
-
Example of a REST API
-
REST vs GraphQL
Async
-
The boomerang effect
-
async.series
-
async.parallel
-
async.waterfall
-
async.auto
-
async.each
-
async.map
-
Recommendations and best practices
-
Async alternatives
Promises
-
What is a promise?
-
Creating a promise
-
Promises API
-
Promises and errors
-
Parallel
-
Async / await
-
Best practices