nTier’s Server-side JavaScript with Node.js and Express training teaches experienced JavaScript developers how to create server-side applications with JavaScript, Node.js and the Express framework. Class time will be divided, with 65 percent dedicated to hands-on learning and 35 percent to lecture.

This class explains where Node.js came from, what it does and why it has rapidly become one of the leading server technologies. Students will learn how to work successfully with the asynchronous model that underlies Node.js in order to easily and quickly create highly scalable sites and services. Core Node.js APIs are covered as well as practical tips and design patterns for server-side JavaScript.

Students will get a solid understanding of how to approach and solve application design challenges using Node.js. The Express framework is introduced to add a basic layer of abstraction for common web application patterns. Alternative frameworks are briefly discussed as well.

Course Duration: 2 days
Prerequisites:

Node.js training attendees should have a thorough knowledge of JavaScript. They should be familiar with web server application design concepts as well as basic HTML and CSS.

Hardware and Software Requirements:
  • Firefox with Firebug or Google Chrome
  • A local installation of Node.js
  • Admin/root or sudo privileges to install additional features during the class
  • Additional lab files that nTier would provide
Course Objectives:
  • Learn why server-side JavaScript is useful
  • Learn how Node.js is architected to allow high scalability with asynchronous code
  • Create basic web applications with Node.js
  • Work successfully in the asynchronous Node.js environment through use of control-flow mechanisms
  • Use files, streams, connections to other servers and databases in a Node.js application
  • Interactively debug Node.js applications
  • Use the Express framework to quickly create and structure MVC server-side apps and REST services
Course Outline:
  • Introduction

 

  • Why Server-Side JavaScript?
    • Advantages and Disadvantages
    • Integration
    • Databases
    • Node + Client MVC Architecture
    • Node with Server-Side Rendering
    • Node for SOA / REST

• About Node
o History of Server-Side Programming Patterns
 Where JavaScript fits in
o CommonJS
o Infrastructure: V8, libev, libeio
o How Does It Work?
o Express, Sails, etc.

• Building a Basic Application
o The Server, Request, Response Objects
o File System Module

• Additional Uses of Node.js Applications
o Operations, Scripting and Tools
o Holding Many Connections Easily
o How to Debug Node.Js Applications

• Async Flow and The Single Thread
o Blocking vs. Non-Blocking Programming Patterns
o Continuation-Passing Style (CPS) and Error Passing

• Node’s APIs
o Node’s Built-In Helpers and Event Emitter
o Adding Push Notifications with SSE, Web Sockets or socket.io
o Node Language Options
o Streams and Buffers
o Accessing Other Servers and Services

• Patterns for Managing Async
o Promises and Deferreds
o Control Flow Libs

• Node.js Middleware Pattern

• The Express Framework
o Routing and MVC in Express
o Alternatives to Express

• Accessing SQL, NoSQL and Other Types of Data Stores

• Architecture
o Node Clustering
o Load Balancing
o Automated Testing
o Message Queues and Cache Services

• Conclusion