Fullstack JavaScript Web Development With Node.js

Course Description

This course covers full stack development with an emphasis on node.js and the node.js ecosystem. It will cover server side JavaScript development as the basis for the MEAN stack (MongoDB, Express.js, Angular and Node.js)
3 days
Contact us for pricing

Pre-requisites

This course is aimed at developers who want to create web applications using the node.js ecosystem. General programming ability is required but specific experience with web development is not required.

Overview of Web Application Development

Understanding web application development
History of the different technologies
The LAMP stack
The MEAN stack

Introduction to node.js

What is Node.js?
Understanding the node.js ecosystem
Installation
Creating an initial project
Looking at package.json
Managing dependencies with npm
Npm

Development Environment

Setting up a development environment
Choosing Integrated development environment
Debugging techniques
Auto build your project - nodemon

JavaScript ES6 Essentials

Writing full stack web applications using Node.js requires a reasonable level of JavaScript this module will fill in any missing concepts that will be used in the rest of the course. In particular some ES6 will be utilised and it is important that participants are familiar with these.
Understanding JavaScript
General programming ideas - comments, variables, arrays, functions, loops, conditions and objects.
ES6 features
Templated strings
Arrow functions
Promises
Modules - import & require
Spread operator
Using an iife

Understanding the asynchronous nature of JavaScript

Callback functions
Promises
The fetch api
async/await
Server side asynchronous operations

Express.js

The original server side framework for web development is express.js
Adding express to your project
Creating a simple endpoint
Endpoint parameters - request and response
Creating a web page using a template engine
Path parameters
Query parameters
Sending objects in the body of a request

Templating

Templating engines ejs & jade
Configuring a template engine
Express.render()
Partial files and includes
Passing parameters to a template

Using mongodb

This course will use mongodb for storage of objects.
Introduction to mongodb
Installing and running mongodb
Creating a database and some test tables
Simple inserts and queries
Adding Mongoose to your node.js web application
Making some simple calls to mongodb
Return json

Create a RESTful web service

Routing in Express
REST endpoints with path parameters
REST request methods - GET, PUT, POST & DELETE

Express.js Middleware

Express has the facility to add extra functionality to a request using middleware. This can be used for things like authentication, change the format of the response, error handling and cookie and session storage.
app.use()
Chaining calls with next()
Creating a simple filter chain
Using sessions and cookies
Create your own middleware module
Creating a simple authentication mechanism using middleware

Automated Testing

There are a number of automated testing frameworks and this module can be customised to match the students preferred environment. Cypress.io will be used if no preference is specified.
Comparison of automated testing frameworks
Overview of common facilities of a testing framework
Implementation of testing using an appropriate automated testing framework

Node.js and Cloud Functions

Node.js is a language supported by AWS Lambda and Firebase / Google Cloud Platform. This module will demonstrate a cloud functions in action.
What is a cloud function?
Advantages of cloud functions.
Creating a simple cloud function on Firebase

JavaScriptnode.jsFullStack Web DevelopmentMEANMEAN StackWeb DevelopmentModern Web DevelopmentES6CypressCypress.io