New Pluralsight Course – Integrating Angular with Node.js RESTful Services 10


I’m excited to announce the release of a new course on Pluralsight titled Integrating Angular with Node.js RESTful Services! This covers Node.js 6.10 or higher and Angular 4 or higher.

In this course I’ll walk you through the process of using Angular to call into RESTful services and perform CRUD (Create, Read, Update and Delete) operations in an application to allow a user to view and modify data. If you’ve wondered about how Angular services work, how to organize modules, the role of Observables and RxJS in async operations, how Angular’s Http client can be used to make async calls, how to create and validate Angular forms, how to work with headers and page data, techniques for preventing CSRF attacks or simply what’s involved with creating a RESTful service, then this course will provide the information you need to get started. Node.js and Express are used along with MongoDB on the server-side. However, the Angular concepts covered throughout the course can be used to call any RESTful service regardless of technology

So what’s in the course? Here’s a synopsis of the key topics as well as the course modules. If you’re a Pluralsight subscriber I really hope you enjoy the course. I had a lot of fun putting it together and filming it!



Integrating Angular with Node.js RESTful Services

Learn how to build an Angular and Node.js application that can perform create, read, update and delete (CRUD) operations. Topics covered include building RESTful services with Node.js and Express, manipulating data in MongoDB and consuming services with Angular (note that Angular 2 or higher is covered and that TypeScript is used).


Key Angular Topics Covered:

  • TypeScript and how it can be used in Angular applications
  • Code organization with Angular modules
  • The role of ES2015 module loaders in Angular applications
  • Promises versus Observables
  • Learn how Observables work (a nice visual explanation is shown) and how to subscribe to them
  • Learn how to create and use Angular services
  • Angular’s Http client and how it can be used to call into RESTful services
  • Differences between Template-driven and Reactive forms in Angular
  • Directives used in Template-driven forms and how to use them for two-way data binding
  • Directives and code used in Reactive forms
  • Form validation techniques and custom validators
  • How to build custom components and leverage Input and Output properties
  • Working with headers sent by the server
  • Building a custom pagination component
  • CSRF attacks and how Angular can help


Key Node.js Topics Covered:

  • Understand GET, POST, PUT and DELETE and the role each plays with RESTful services
  • ES2015 features and how they can help organize code in Node.js applications
  • Create RESTful services capable of supporting CRUD operations using Node.js and Express
  • Use Mongoose to connect Express to MongoDB
  • Load Express routes dynamically (convention or configuration technique)
  • Paging data
  • Working with headers
  • Preventing CSRF attacks


Course Modules:

  1. Course Introduction
    • Pre-requisites to Maximize Learning
    • Learning Goals
    • Server-side Technologies and Concepts
    • Client-side Technologies and Concepts
    • Running the Application
    • Running the Application with Docker
  2. Exploring the Node.js and Angular Application
    • Exploring the Project Structure
    • Application Modules
    • Configuring Node.js Routes
    • Configuring the ES Module Loader
    • Angular Modules, Components and Services
  3. Retrieving Data Using a GET Action
    • Creating a GET Action to Return Multiple Customers
    • Creating a GET Action to Return a Single Customer
    • Making GET Requests with an Angular Service
    • Displaying Customers in a Grid
    • Displaying a Customer in a Form
    • Converting to a ‘Reactive’ Form
  4. Inserting Data Using a POST Action
    • Creating a POST Action to Insert a Customer
    • Making a POST Request with an Angular Service
    • Modifying the Customer Form to Support Inserts
    • Exploring the ‘Reactive’ Form
  5. Updating Data Using a PUT Action
    • Creating a PUT Action to Update a Customer
    • Making a PUT Request with an Angular Service
    • Modifying the Customer Form to Support Updates
    • Exploring the ‘Reactive’ Form
  6. Deleting Data Using a DELETE Action
    • Creating a DELETE Action to Delete a Customer
    • Making a DELETE Request with an Angular Service
    • Modifying the Customer Form to Support Deletes
    • Exploring the ‘Reactive’ Form
  7. Data Paging, HTTP Headers and CSRF
    • Adding a Paging Header to a RESTful Service Response
    • Accessing Headers and Data in an Angular Service
    • Adding Paging Support to a Component
    • Adding a Paging Component
    • CSRF Overview
    • Adding CSRF Functionality with csurf
    • Using a csurf Token in an Angular Service


Join the free Code with Dan Development Newsletter!

  • Kev

    Nice work, it looks very interesting. If I was you I’d add “Angular 2 or higher” to the keywords of the pluralsight description or am I mislead in thinking that the second version is significantly more advanced than the first (and newbies should avoid learning Angular 1)

    • Yeah – we originally had “2” in the title until the Angular team came out right before the course was released with a recommendation to no longer use the version in the name (makes sense long-term actually). “AngularJS” now refers to Angular 1.x and “Angular” refers to 2 or higher. It’ll be a bit confusing for people until we get a few versions in, but Pluralsight and I decided to stick to the Angular team guidelines.

      I agree with what you’re saying though…just decided to stick to the new guidelines. It means a lot less people will watch it initially since some will think it covers 1.x, but just watching the free intro video should make it clear.

  • Aindriu Mac Giolla Eoin

    what are the Pre-requisites to Maximize Learning ? to get the most out of the course

    • You’ll want to know HTML, JavaScript and CSS at a minimum. To get the most out of it knowing Node.js and Angular (v2 or higher) fundamentals would be best.

  • Leandrit Ferizi

    Nice article, can you give us a good insight how to develop with Angular and Rails as a combination?

    • I’m not a Rails guy so I won’t be able to do that one. Sorry. 🙂

  • Plans on upgrading server side code to Promises? Callbacks are hard to maintain and lead beginners in wrong direction.

    • While I agree with you in general, callbacks are quite appropriate when there’s only a single level involved. In more complex apps with callbacks inside callbacks then I completely agree that promises are the way to go. But, it means introducing other modules like BlueBird or the native Promise object which isn’t a goal of the course so I opted to keep it simple there since multiple nested callbacks aren’t a problem with that particular code. Having said that, I may add promises at some point down the road. Thanks for the suggestion.

  • AnnaSmothers

    Nice! Will this also be available on udemy? On pluralsight you don’t have a community that can ask questions with out paying for it (Q&A). For example, I’m taking the docker for webdeveloper course (love it), but some video’s are outdated, that makes it hard to follow and to pay for a simple version question….

    Maybe I just haven’t find the right button yet in pluralsight ;P.

  • Martin Pultz

    Nice timing for the course and lucky I have a Pluralsight account. I’ve just spent the day trying to find recent tutorials for best practices setting up Angular and Node both with TypeScript.

    I noticed you don’t mention the Angular CLI. One of the parts I was tasked to research was how we could use the Angular CLI with Node using TypeScript. I was wondering if you had a reference or opinion on the folder structure, builds, reuse of testing config for client and server, packages like ts-node, etc. I found 3 or 4 different solutions, but I’m not sure of the implications of each, or whether you can/should use the same e2e folder for both server and client, whether the karma setup can be used for both so that you use as much of the CLI as possible since we are so used to it for boilerplate, etc.

    Anyway, after looking into this today I was at a loss, and paralyzed by choice, but it looks like your course will help with everything, up to the use of Angular CLI, but any opinion or resource you might have on it’s use with Node would be appreciated.