Realdolmen Education

Details

Web Applications with Node.js

This course is currently not scheduled on the open calendar, but can be organized on request.

Request Course

Duration

3 day(s)

Audience

Web developers who want learn how to use JavaScript on the server-side.

Prerequisites

Experience in writing front-end JavaScript code and a good understanding of the JavaScript characteristics.

Objectives

Learn by using Node.js how modern web application can be build by using the same language on the front and the back-end.

Methods

Classroom training with hands-on exercises.

Description

Since its creation in 2009, Node.js has grown into a powerful and increasingly popular asynchronous-development framework for creating highly-scalable network applications using JavaScript. Respected companies such as Dow Jones and LinkedIn are among the many organizations to have seen Node’s potential and adopted it into their businesses. Node.js is also part of the popular MEAN stack, which allows fast development of I/O centric applications. This course shows how to build quality web applications on the Node platform. First we will take a look at the most important runtime modules such as filesystem, events, process, etc. Next we explore the NPM package manager, which allows us to use the modules provided by the community. At this point we will stop and take a closer look at the challenges of working with asynchronous models, such as callback hell, promises and future ES6 and ES7 features that will provide solutions to these problems. From this point forward we are ready to tackle more advanced libraries; we cover the Express.js framework, templating and middleware services. No application is complete without an interface to the backend, which will be the next subject to handle: integration with various databases, such as MongoDB, SQLite, SQLServer and CouchDB. Finally we will cover the very important topic of writing unit tests, where we use Mocha as the framework of choice. The course consists of several in-depth exercises giving the participants the needed experience for creating Node.js web applications.

Contents

  • Web Applications With Node.js
    • Agenda
      • Agenda
    • Introduction
      • What is Node.js?
      • Portability
      • History
      • Node Package Manager (NPM)
      • V8
      • Single Threading
      • Callback Asynchrony
      • I/O Centricity
      • Events
      • Scalability
    • Getting Started
      • Installation
      • REPL Environment
      • Running Scripts
      • Creating a simple Web Server
    • Runtime
      • Runtime API
      • Runtime API Modules
      • Stability Index
      • Global Object
      • Node vs Browser
      • Console
      • Modules
      • Custom Modules
      • Readline
      • Errors
      • Handling Errors
      • Throwing and Callbacks
      • Filesystem
      • Events
      • Custom Events
      • Async I/O
      • Manipulating the Filesystem
      • Reading Files
      • Writing Files
      • Random and Binary File Access
      • Reading and Writing Binary Data
      • Process
      • ChildProcess
      • Http Server
    • Node Package Manager (NPM)
      • What is NPM?
      • Ecosystem
      • Repository
      • NPM Command Line Tool
      • NPM Commands
      • Initializing a Project
      • Installing Dependencies
      • Semantic Versioning and Wildcards
      • Updating Dependencies
      • Running Scripts
    • Advanced Tips and Tricks
      • Debugging
      • ECMAScript 6 Harmony
      • Supported ES6 Features
      • Asynchronous Programming Model Challenges
      • Improving Asynchronous Code Structure
      • Promises
      • Future Enhancements
    • Express
      • What is Express.js?
      • Connect Framework Legacy
      • Model View Controller
      • Features
      • API Reference
      • Getting Started
      • Hello World
      • Generator
      • Basic Routing
      • Routing Wildcards and Path Variables
      • Handlers
      • Request
      • Response
      • Request and Response Examples
      • Sending Files Dynamically
      • Cookies
      • Static Routes
      • Mounting Routers
      • Enabling Middleware
      • Chaining Middleware
      • Error Handling
      • Templates
      • Configuring Template Engines
      • Rendering Templates
      • Jade Templates
      • Model Data
      • Control Flow
      • Template Inheritance
      • Language Reference
      • EJS Alternative Template Engine
      • Body Parsers
      • Forms Processing Overview
      • Form Processing
      • File Upload
      • Less.js Preprocessor Integration
      • Uglify Minification Integration
      • REST Services
    • Databases
      • Why Databases
      • SQL vs NoSQL
      • Examples of Databases
      • Database access with Node.js
      • Integration with CouchDB
      • Integration with MySQL
      • Integration with Microsoft SQL Server
      • Integration with MongoDB
      • Integration with SQLite
      • Why SQLite
      • Working with SQLite
      • Running Queries
      • Getting data from the database
      • Prepared statements
      • Query Flow Control
      • ODM / ORM
      • Mongoose
      • Sequelize
    • Unit Testing
      • Rationale
      • Jasmine and Mocha
      • Assertions
      • Supporting Frameworks
      • Node?s Assert Module
      • Mocha
      • Simple Unit Tests
      • Running The Tests
      • Reporters
      • Asynchronous Tests
      • Integration with NPM
      • Testing in the Browser
    • Conclusion
      • Summary
      • What?s next?
      • References