NodeJS and Express Foundation

The initial shock of writing JavaScript on the server-side has subsided, and as the dust settles, Node.js is still around. JavaScript has definitely made an impact outside of browsers and client-side development. This course examines how to actually build web applications using the Node.js runtime, together with the popular Express framework. We'll consider handling asynchronous requests, both from a pure Node.js standpoint, as well as using a more modern approach with promises and the Bluebird library.

  

We won't dwell on older standards, but rather use newer versions of ECMAScript right away, making use of new language features such as classes, arrow functions and modules right away. We also know better than to NOT test our code, and so will take a look at how TDD fits into the process of writing Node.js services. We'll take a look at both unit testing as well as end-to-end testing, and see how they complement each other in a lot of ways.

As a participant, you will get the chance to build an application from scratch during the 2 days of the course. The course has a highly practical focus, and conveys the knowledge and experience that has been built up from numerous real-world projects involving Node.js by the developers at Edument.

Participants are expected to be comfortable with Javascript (but not necessarily ECMAScript 2015).

Audience:

The course is directed towards developers who have worked with JavaScript before, and who are used to working with web applications in some form. You might be a frontend developer who wants to get acquainted with backend development, or you might have worked with other web frameworks and want to learn more about Node.js application development.

Prerequisites:

Participants should have taken Javascript Foundation, or have a similar level of practical knowledge.

Stephen Lau

Stephen has worked developing sections of the QNX core OS as well as developing drivers in C for use in mobile devices. Also, he has setup a build and integration server for testing of drivers. At Blackberry he worked as a team lead for several concept and demo projects related to mobile UX. He has also successfully lead a creative team to develop a sign language translation concept project, resulting in an international award.

Stephen has experience developing at different layers of the software stack, from low level drivers designed and developed in C to apps written in C++ and Java.  With previous experience in firmware and driver development, rendering engine development, automated testing, and concept development Stephen is comfortable working with both large and small projects.

With a good eye for detail, Stephen has worked closely with both engineering and design teams to implement BlackBerry's rendering engine as well as many projects related to mobile UX.

Stephen has received several provincial and national medals for his work in electronics and robotics, as well as an international developer award for his work on an American Sign Language translation project.

Key skills: C, C++, JavaScript, ReactJS, NodeJS, QNX RTOS, Docker, Microservices

Course content: 

  • The first day of the course will take a look at what Node.js is, and what it isn't. We'll start by building a really simple web application, and move onto looking at the new ES2015 syntax and compiling using babel-node. This first day also introduces promises and the Express framework.

    • Node.js overview
    • Creating a simple Node.js project
    • npm and package management
    • JavaScript - ECMASCript history and differences between versions
    • Moving to ECMAScript 2015 using babel-node
    • Asynchrony, Node.js callbacks and promises
    • A+/Promises and the Bluebird library
    • Introduction to Express
    • Routing requests in Express
    • Server-side templating using handlebars
  • Now that we know about Node.js, npm, Express and promises, we can dig a bit deeper into all of these areas and start talking about REST in more detail. We'll see how serving presentable content from the server-side might differ from solely returning JSON and feeding that to a single-page application.

    This day will take an in-depth look at REST principles, testing, security and error handling and deepen your knowledge about Express.

    • REST-driven single-page applications vs. traditional web applications
    • REST core principles and architectural overview
    • RESTFulness and the Richardson maturity model
    • Proxying requests
    • Error handling
    • Express middleware
    • Building and testing services
    • E2E testing and mocks
    • Securing your application

Other relevant courses