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)
Duration: 3 days
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