Opleiding: DEVNOJS Node.js Software Development Active Learning (English)
Volg de Node.js Software Development Training. Node.js is een open source framework dat op verschillende platformen runt, zoals Windows, Linux, Unix, Mac OS X etc. Het is gebouwd op Chrome’s JavaScript runtime voor het makkelijk bouwen van snelle en schaalbare netwerkapplicaties.
Na afronding van deze training kun je onder andere:
- Node.js installeren en configureren met behulp van platform installation packages en source code
- Node.js packages managen met de Node Package Manager
- Node.js modules gebruiken en creëren
Deze training bevat Engelstalig lesmateriaal en wordt gegeven door een Nederlandssprekende docent (indien gewenst ook mogelijk in het Engels).
Deze Node.js training introduceert Node.js als een platform. Node.js is een open source framework dat op verschillende platformen runt, zoals Windows, Linux, Unix, Mac OS X etc. Het is gebouwd op Chrome’s JavaScript runtime voor het makkelijk bouwen van snelle en schaalbare netwerkapplicaties. Node.js gebruikt JavaScript op de server. Node.js bied een rijke bibliotheek van verschillende JavaScript modules die de ontwikkeling van web applicaties simplificeert.
Na afronding van de training kun je:
- Uitleggen wat Node.js is en hoe je het het beste kunt gebruiken.
- Node.js installeren en configureren met behulp van platform installation packages en source code.
- Node.js packages managen met de Node Package Manager.
- Node.js modules gebruiken en creëren.
- Een web applicatie configureren en beveiligen.
- File en stream resources gebruiken met Node.js.
- Gebruikelijke Node.js programmeer patronen begrijpen.
- Performance issues ontdekken met Node.js.
- Node.js problemen troubleshooten.
Lesmethode
Bij Master IT train je met onze unieke lesmethode Active Learning, hiermee leer je aantoonbaar effectiever!
Wij zjn er namelijk van overtuigd dat je slimmer en met meer plezier leert als je actief met je lesstof omgaat. Onze klassen zijn gevuld met maximaal 8 cursisten. Hierbij luister je niet passief naar een trainer, maar ga je interactief en 1-op-1 met de trainer aan de slag om ervoor te zorgen dat jouw leerdoelen behaald worden. De theorie maak je je zoveel mogelijk zelf eigen, de nadruk van de begeleiding ligt op het begrijpen en toepassen van die theorie in de praktijk. Zo leer je alleen datgene wat je echt nodig hebt.
- Je bepaalt zelf je leertempo.
- De trainer coacht je bij het definiëren van jouw leertraject.
- Je onthoudt en begrijpt je nieuwe kennis beter.
- Alles draait om toepassing van de stof in jouw praktijk.
Om alle beschikbare trainingsdata in te zien, bekijk dan onze eigen website
Doelgroep
Deze training is bedoeld voor iedereen die geïnteresseerd is in het werken met Node.js als een platform.Deze training is bedoeld voor iedereen die geïnteresseerd is in het werken met Node.js als een platform.Voorkennis
Voor het volgen van deze training is geen specifieke voorkennis vereist.Voor het volgen van deze training is geen specifieke voorkennis vereist.Onderdelen
CHAPTER 1. INTRODUCTION TO NODE.JS
- What Is Node.js?
- Application of Node.js
- Installing Node.js and NPM
- "Hello, Node World!"
- How It Works
- Built on JavaScript: Benefits
- Traditional Server-Side I/O Model
- Disadvantages of the Traditional Approach
- Event-Driven, Non-Blocking I/O
- Concurrency
- Using Node Package Manager (NPM)
- Express
- Summary
CHAPTER 2. MODULE AND DEPENDENCY MANAGEMENT
- Nature of a Node.js Project
- Introduction to Modules
- A Simple Module
- Using the Module
- Directory Based Modules
- Example Directory Based Module
- Using the Module
- Making a Module Executable
- Core Modules
- Loading Module from node_modules Folders
- Dependency Management Using NPM
- Installing a Package
- About Global Installation
- Setting Up Dependency
- Package Version Numbering Syntax
- Updating Packages
- Uninstalling Packages
- Alternate Dependency Management
- Summary
CHAPTER 3. THE FILE SYSTEM MODULE
- Introduction
- Basic File Manipulation
- Getting File/Directory Meta Data
- Read an Entire File
- The Buffer Class
- Writing to a File
- Reading in Chunks
- Writing in Chunks
- The open() Method
- Stream API
- The Readable Interface
- Example Reading Data in Chunks
- The Writable Interface
- Summary
CHAPTER 4. EVENTS IN NODE JS
- Event Driven Programming
- Event Driven Programming (Contd.)
- Event Emitter
- EventEmitter Class
- EventEmitter Class – Inheritance
- The Event Loop and Event Handler
- Phases Overview
- Event Handlers
- Example (Using EventEmitter as an Object)
- Example (Inheriting from EventEmitter)
- EventEmitter Functions
- Issue with 'this' Keyword in Callback Functions
- Handling this Problem
- Controlling Event Callbacks in the Event Loop
- Summary
CHAPTER 5. ASYNCHRONOUS PROGRAMMING WITH CALLBACKS
- Synchronous and Asynchronous
- Callbacks
- Creating a Callback Function
- Calling The Callback Function
- Callback - Another Example
- Issue with 'this' Keyword in Callback Functions
- Handling this Problem
- Handling this Problem – Method 1 (Storing in Another Variable)
- Handling this Problem – Method 2 (Using Bind Function)
- Handling this Problem – Method 3 (Using ES6 Arrow Functions)
- Error Handling without Callback
- Error Handling with Callback
- Asynchronous Callback
- setImmediate() and nextTick()
- API Example
- Summary
CHAPTER 6. ASYNCHRONOUS PROGRAMMING WITH PROMISES
- The Problems with Callbacks
- Introduction to Promises
- Requirements for Using Promises
- Creating Promises Manually
- Calling the Promise-based Function
- Making APIs that support both callbacks and promises
- Using APIs that support both callbacks and promises
- Chaining then Method / Returning a Value or a Promise from then Method
- Promisifying Callbacks with Bluebird
- Using Bluebird
- Bluebird – List of Useful Functions
- Benefit of using Bluebird over ES6 for Promisification
- Error Handling in Promise-based asynchronous functions
- Summary
CHAPTER 7. BUILD AND DEPENDENCY MANAGEMENT
- Introduction
- Bower Package Manager
- Managing Packages Using Bower
- Using Bower Packages
- Describing Dependency
- Grunt Build Manager
- Installing Grunt Components
- Writing a Grunt Build Script
- Running Grunt
- Running the JSHint Task
- Compiling 'Less' Files
- Compressing CSS Files
- Gulp Build Manager
- Gulp vs. Grunt
- Installing Gulp Components
- Writing a Build Script
- Running Gulp
- Compiling Less Files
- Summary
CHAPTER 8. BASIC WEB APPLICATION DEVELOPMENT
- Introduction to the HTTP Module
- The Request Handler Callback Function
- The Server Object
- Example Use of Server Object
- The Request Object
- The Response Object
- Parsing Request Body
- Serving Static Files
- The HTTP Client API
- Making POST/PUT/etc. Requests
- Where To go from Here?
- Summary
CHAPTER 9. DEBUGGING AND UNIT TESTING
- Problem Determination Options
- Using console.log
- Using the 'debug' Logging Package
- Configure Logging
- The 'Node Inspector' Debugger
- Basic Usage of the Debugger
- Unit Testing Node.js Applications
- Getting Setup
- Writing a Test Script
- Running Unit Test
- Testing Asynchronous Code
- Using the Chai Assert API
- The Chai Expect API
- Summary
CHAPTER 10. INTRODUCTION TO EXPRESS
- Introduction to Express
- Basic Routing Example
- Defining Routing Rules
- Route Path
- The Response Object
- Supplying URL Parameters
- Ordering of Routes
- Defining Catch All Route
- Full Example Web Service
- Summary
CHAPTER 11. EXPRESS MIDDLEWARE
- Introduction to Express Middleware
- Writing a Middleware Function
- Binding to a Path
- Order of Execution
- Raising Error
- Handling Error
- Serving Static Files
- Handling POST Request Body
- Enable Response Compression
- Summary
CHAPTER 12. ACCESSING MONGODB FROM NODE.JS
- Getting Started
- The Connection URL
- Obtaining a Collection
- Inserting Documents
- Updating a Document
- Querying for Documents
- Deleting a Document
- Connection Pooling
- Summary
CHAPTER 13. PUG TEMPLATE ENGINE
- Introduction to Pug
- Using Pug
- A Simple Template
- Passing Data to a Template
- Basic HTML Tag Rendering
- Rendering Values
- Conditional Rendering
- Rendering a List
- Layout Template
- Creating a Layout Template
- Creating a Content Template
- Summary
CHAPTER 14. CLUSTERING AND FAILOVER
- Process Management
- Managing the Process Using OS Tools
- Installing a Service in Windows
- Create an Upstart Script in Ubuntu
- Process Management Using forever
- Clustering Basics
- Example Clustered Application
- More About Clustering
- Child Process Failover
- Summary
CHAPTER 15. MICROSERVICES WITH NODE.JS
- Microservices
- Microservices with Node.js
- The Express Package
- Installing and Using Express
- Defining Routing Rules in Express
- Route Path
- The Response Object
- A Simple Web Service with Express Example
- Composite Services
- Example - Call an API Using a Promise
- Using the callApi() Function
- Summary
CHAPTER 16. SUPERTEST, SPY, AND NOCK
- SuperTest
- Sample Service
- Test without a Testing Framework
- Test with a Testing Framework
- Using Promises with SuperTest
- Nock
- Example
- Example – Request Body
- Using Query String
- Specifying Replies
- Summary
CHAPTER 17. NEW FEATURES IN NODE.JS VERSION 4, 6, AND 8
- Node History
- Node Version Policy
- LTS Release Schedule
- Changes in Node.js
- 'npm' Modules and Native Code
- Node 4.x
- Arrow Functions
- Arrow Functions As Parameters
- Using 'this' Within Arrow Functions
- ES2015 Classes
- Declaring Classes
- Declaring Instance Methods
- Accessor Methods
- Static Methods
- Inheritance With Classes
- Generator Functions
- Generator Example
- Controlling Generator Execution - next(value)
- Controlling Generator Execution - return(value)
- Controlling Generator Execution - throw(exception)
- Generator Recursion With 'yield*'
- Tail Call Optimization
- 'const' and 'let'
- Variable Scope
- Shadowing Variables
- Node 5.x
- Spread Operator
- Node 6.x
- Rest Parameter
- Node 7.x
- Node 8.x
- Summary
CHAPTER 1. INTRODUCTION TO NODE.JS
- What Is Node.js?
- Application of Node.js
- Installing Node.js and NPM
- "Hello, Node World!"
- How It Works
- Built on JavaScript: Benefits
- Traditional Server-Side I/O Model
- Disadvantages of the Traditional Approach
- Event-Driven, Non-Blocking I/O
- Concurrency
- Using Node Package Manager (NPM)
- Express
- Summary
CHAPTER 2. MODULE AND DEPENDENCY MANAGEMENT
- Nature of a Node.js Project
- Introduction to Modules
- A Simple Module
- Using the Module
- Directory Based Modules
- Example Directory Based Module
- Using the Module
- Making a Module Executable
- Core Modules
- Loading Module from node_modules Folders
- Dependency Management Using NPM
- Installing a Package
- About Global Installation
- Setting Up Dependency
- Package Version Numbering Syntax
- Updating Packages
- Uninstalling Packages
- Alternate Dependency Management
- Summary
CHAPTER 3. THE FILE SYSTEM MODULE
- Introduction
- Basic File Manipulation
- Getting File/Directory Meta Data
- Read an Entire File
- The Buffer Class
- Writing to a File
- Reading in Chunks
- Writing in Chunks
- The open() Method
- Stream API
- The Readable Interface
- Example Reading Data in Chunks
- The Writable Interface
- Summary
CHAPTER 4. EVENTS IN NODE JS
- Event Driven Programming
- Event Driven Programming (Contd.)
- Event Emitter
- EventEmitter Class
- EventEmitter Class – Inheritance
- The Event Loop and Event Handler
- Phases Overview
- Event Handlers
- Example (Using EventEmitter as an Object)
- Example (Inheriting from EventEmitter)
- EventEmitter Functions
- Issue with 'this' Keyword in Callback Functions
- Handling this Problem
- Controlling Event Callbacks in the Event Loop
- Summary
CHAPTER 5. ASYNCHRONOUS PROGRAMMING WITH CALLBACKS
- Synchronous and Asynchronous
- Callbacks
- Creating a Callback Function
- Calling The Callback Function
- Callback - Another Example
- Issue with 'this' Keyword in Callback Functions
- Handling this Problem
- Handling this Problem – Method 1 (Storing in Another Variable)
- Handling this Problem – Method 2 (Using Bind Function)
- Handling this Problem – Method 3 (Using ES6 Arrow Functions)
- Error Handling without Callback
- Error Handling with Callback
- Asynchronous Callback
- setImmediate() and nextTick()
- API Example
- Summary
CHAPTER 6. ASYNCHRONOUS PROGRAMMING WITH PROMISES
- The Problems with Callbacks
- Introduction to Promises
- Requirements for Using Promises
- Creating Promises Manually
- Calling the Promise-based Function
- Making APIs that support both callbacks and promises
- Using APIs that support both callbacks and promises
- Chaining then Method / Returning a Value or a Promise from then Method
- Promisifying Callbacks with Bluebird
- Using Bluebird
- Bluebird – List of Useful Functions
- Benefit of using Bluebird over ES6 for Promisification
- Error Handling in Promise-based asynchronous functions
- Summary
CHAPTER 7. BUILD AND DEPENDENCY MANAGEMENT
- Introduction
- Bower Package Manager
- Managing Packages Using Bower
- Using Bower Packages
- Describing Dependency
- Grunt Build Manager
- Installing Grunt Components
- Writing a Grunt Build Script
- Running Grunt
- Running the JSHint Task
- Compiling 'Less' Files
- Compressing CSS Files
- Gulp Build Manager
- Gulp vs. Grunt
- Installing Gulp Components
- Writing a Build Script
- Running Gulp
- Compiling Less Files
- Summary
CHAPTER 8. BASIC WEB APPLICATION DEVELOPMENT
- Introduction to the HTTP Module
- The Request Handler Callback Function
- The Server Object
- Example Use of Server Object
- The Request Object
- The Response Object
- Parsing Request Body
- Serving Static Files
- The HTTP Client API
- Making POST/PUT/etc. Requests
- Where To go from Here?
- Summary
CHAPTER 9. DEBUGGING AND UNIT TESTING
- Problem Determination Options
- Using console.log
- Using the 'debug' Logging Package
- Configure Logging
- The 'Node Inspector' Debugger
- Basic Usage of the Debugger
- Unit Testing Node.js Applications
- Getting Setup
- Writing a Test Script
- Running Unit Test
- Testing Asynchronous Code
- Using the Chai Assert API
- The Chai Expect API
- Summary
CHAPTER 10. INTRODUCTION TO EXPRESS
- Introduction to Express
- Basic Routing Example
- Defining Routing Rules
- Route Path
- The Response Object
- Supplying URL Parameters
- Ordering of Routes
- Defining Catch All Route
- Full Example Web Service
- Summary
CHAPTER 11. EXPRESS MIDDLEWARE
- Introduction to Express Middleware
- Writing a Middleware Function
- Binding to a Path
- Order of Execution
- Raising Error
- Handling Error
- Serving Static Files
- Handling POST Request Body
- Enable Response Compression
- Summary
CHAPTER 12. ACCESSING MONGODB FROM NODE.JS
- Getting Started
- The Connection URL
- Obtaining a Collection
- Inserting Documents
- Updating a Document
- Querying for Documents
- Deleting a Document
- Connection Pooling
- Summary
CHAPTER 13. PUG TEMPLATE ENGINE
- Introduction to Pug
- Using Pug
- A Simple Template
- Passing Data to a Template
- Basic HTML Tag Rendering
- Rendering Values
- Conditional Rendering
- Rendering a List
- Layout Template
- Creating a Layout Template
- Creating a Content Template
- Summary
CHAPTER 14. CLUSTERING AND FAILOVER
- Process Management
- Managing the Process Using OS Tools
- Installing a Service in Windows
- Create an Upstart Script in Ubuntu
- Process Management Using forever
- Clustering Basics
- Example Clustered Application
- More About Clustering
- Child Process Failover
- Summary
CHAPTER 15. MICROSERVICES WITH NODE.JS
- Microservices
- Microservices with Node.js
- The Express Package
- Installing and Using Express
- Defining Routing Rules in Express
- Route Path
- The Response Object
- A Simple Web Service with Express Example
- Composite Services
- Example - Call an API Using a Promise
- Using the callApi() Function
- Summary
CHAPTER 16. SUPERTEST, SPY, AND NOCK
- SuperTest
- Sample Service
- Test without a Testing Framework
- Test with a Testing Framework
- Using Promises with SuperTest
- Nock
- Example
- Example – Request Body
- Using Query String
- Specifying Replies
- Summary
CHAPTER 17. NEW FEATURES IN NODE.JS VERSION 4, 6, AND 8
- Node History
- Node Version Policy
- LTS Release Schedule
- Changes in Node.js
- 'npm' Modules and Native Code
- Node 4.x
- Arrow Functions
- Arrow Functions As Parameters
- Using 'this' Within Arrow Functions
- ES2015 Classes
- Declaring Classes
- Declaring Instance Methods
- Accessor Methods
- Static Methods
- Inheritance With Classes
- Generator Functions
- Generator Example
- Controlling Generator Execution - next(value)
- Controlling Generator Execution - return(value)
- Controlling Generator Execution - throw(exception)
- Generator Recursion With 'yield*'
- Tail Call Optimization
- 'const' and 'let'
- Variable Scope
- Shadowing Variables
- Node 5.x
- Spread Operator
- Node 6.x
- Rest Parameter
- Node 7.x
- Node 8.x
- Summary
