O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Path: Full Stack Javascript

Video Description

Use JavaScript, end-to-end

In Detail

The increasing popularity of Node.js just goes to show how quickly developers are moving towards using one language across their development stack. In this Learning Path we’ll look at MongoDB, Express, AngularJS and Node.js as a comprehensive full-stack JavaScript solution that will help you embrace modern web development.

Prerequisites: A firm understanding of JavaScript, HTML and CSS

Resources: Code downloads and errata:

  • Mastering JavaScript

  • Web Development with Node.JS and MongoDB

  • Mastering Express Web Application Development

  • Learning Web Development with the MEAN Stack

  • Mastering MEAN Web Development

  • This path navigates across the following products (in sequential order):

  • Mastering JavaScript (4h 10m)

  • Web Development with Node.JS and MongoDB (3h 54m)

  • Mastering Express Web Application Development (2h 51m)

  • Learning Web Development with the MEAN Stack (2h 48m)

  • Mastering MEAN Web Development (3h 36m)

  • Photo Credit: ©iStockphoto.com/photovibes

    Table of Contents

    1. Chapter 1 : Mastering JavaScript
      1. The Course Overview 00:02:58
      2. Using White Space for Readability 00:05:20
      3. Declaring Variables 00:07:52
      4. Declaring Complex Data Types and Functions 00:04:22
      5. OOP Naming Conventions 00:04:14
      6. Creating a Global Namespace 00:04:46
      7. Constants (and Pseudo constants) 00:03:49
      8. Smart Coercion of Data Fields 00:04:23
      9. Targeting at JavaScript Versions or Features 00:04:53
      10. Creating an onload Method That Always Works 00:03:39
      11. OnReady – Our First Cross-browser Script 00:06:51
      12. Using Modernizr to Detect Features 00:04:23
      13. Building a Conditional Logic Flow 00:04:51
      14. Selecting DOM Elements Natively in HTML5 00:06:25
      15. Creating a Cross-browser Script Loader 00:05:37
      16. Using Sizzle to Select DOM Elements 00:07:14
      17. Defining a Namespace 00:05:43
      18. Creating Private Variables in JavaScript 00:05:45
      19. The JavaScript Module Design Pattern 00:06:30
      20. Version Controlling Our Library 00:07:08
      21. Building Out Our Library 00:11:26
      22. Thinking with Interfaces 00:07:21
      23. Creating an Adapter Design Pattern 00:05:30
      24. Building a jQuery Adapter 00:06:41
      25. Adding a Functionality Method 00:03:47
      26. Mimicking the jQuery Wrapper 00:09:07
      27. Introducing the Facade Design Pattern 00:03:56
      28. Creating a Facade Creator 00:04:34
      29. Creating a New Global Function Through the Facade 00:04:00
      30. Creating an Advanced Facade Pattern 00:05:19
      31. Creating a Singleton 00:11:33
      32. Building the Constructor for Our Ticker 00:10:37
      33. Connecting Time with Our Ticker 00:11:10
      34. Processing Interval groups 00:09:46
      35. Exposing Our Ticker to the World 00:02:46
      36. Creating an Event Dispatcher 00:13:35
      37. Integrating the Event Dispatcher into Our Library 00:08:12
      38. Removing Events from the Dispatcher 00:05:21
      39. Building Test Units 00:08:48
    2. Chapter 2 : Web Development with Node.JS and MongoDB
      1. The Course Overview 00:03:29
      2. Node.js Basics 00:04:14
      3. Blocking Versus Non-blocking Code 00:06:14
      4. Setting Up Your Environment 00:05:43
      5. Hello Workout 00:09:11
      6. CommonJS 00:03:49
      7. Npm 00:07:18
      8. The Event Loop 00:08:14
      9. Working with Streams 00:06:03
      10. Working with Files 00:05:17
      11. Express.js Basics 00:04:40
      12. MVC 00:05:29
      13. Routing 00:04:13
      14. Scaffolding an App 00:07:34
      15. Templating with Handlebars 00:05:32
      16. MongoDB Basics 00:05:45
      17. NoSQL 00:03:49
      18. Schema and Data Types 00:06:09
      19. CRUD 00:06:08
      20. Integrating with Node.js 00:04:44
      21. Mongoose 00:07:47
      22. RESTful APIs 00:07:19
      23. Serving APIs 00:05:52
      24. Consuming on the Server-side 00:06:34
      25. Consuming on the Client-side 00:05:13
      26. CRUD Through REST 00:05:52
      27. Unit Testing and TDD 00:06:43
      28. Mocha and Chai 00:05:53
      29. Spying and Stubbing 00:04:58
      30. Mocking with Sinon.JS 00:05:21
      31. Running with Karma 00:05:48
      32. Dependencies and SemVer 00:05:08
      33. package.json 00:05:26
      34. Publishing to npm 00:04:18
      35. Heroku Basics 00:05:07
      36. Deploying on Heroku 00:05:33
      37. Optimizing Page Performance 00:06:43
      38. Isomorphic JavaScript 00:05:04
      39. Bundling with Webpack 00:04:39
      40. Finishing the App 00:05:34
      41. Final Remarks 00:06:08
    3. Chapter 3 : Mastering Express Web Application Development
      1. The Course Overview 00:02:19
      2. Configuration with nconf 00:10:16
      3. Getting to Know Winston 00:10:23
      4. Installing and Using Nunjucks 00:06:17
      5. Consuming the Instagram API 00:04:49
      6. Showing the Results on a Page 00:06:47
      7. Caching Requests in Memory 00:05:37
      8. Installing Mocha 00:05:01
      9. Refactoring to Make Things Testable 00:04:38
      10. Mocking to Remove Dependencies 00:07:13
      11. Spying with Sinon.js 00:06:31
      12. Installing Socket.io 00:03:53
      13. Sending and Receiving Data in Real-time 00:08:18
      14. Scoping Data to Individual Users 00:06:59
      15. Adding a Chat Room 00:02:53
      16. Middleware 00:06:11
      17. Mounting Sub-applications 00:03:35
      18. Serving Content Conditionally for AJAX 00:06:04
      19. Persistance with Sequelize and MySQL 00:09:06
      20. HTTPS and Express 00:09:34
      21. Preventing CSRF 00:08:02
      22. Using Helmet to Make Your App More Secure 00:03:31
      23. Improving Performance with Node.js Cluster 00:05:02
      24. Nginx and Node.js 00:02:51
      25. Using Supervisord to Keep Things Running 00:08:31
      26. ghost.org 00:08:53
      27. Balloons.io 00:07:57
    4. Chapter 4 : Learning Web Development with the MEAN Stack
      1. The Course Overview 00:03:07
      2. What Is the MEAN Stack? 00:02:12
      3. Installing WebStorm 00:02:07
      4. Installing npm, Bower, and Grunt 00:07:31
      5. Installing Test Suites 00:03:01
      6. What Do All of These Tools Do? 00:04:29
      7. Hello, Mr. Grinch, Let’s Get MEAN! 00:04:21
      8. The Application Introduction 00:06:13
      9. Getting Started 00:08:12
      10. The Dashboard 00:05:57
      11. Adding a Customer 00:08:49
      12. Listing Customers 00:02:38
      13. Editing a Customer 00:04:03
      14. Adding a Sale 00:06:23
      15. Listing a Customer’s Sales 00:03:59
      16. Editing a Sale 00:01:38
      17. Using the Angular Bootstrap Date Picker 00:03:28
      18. Automated Seeding of Data 00:05:15
      19. Dashboard – Monthly and Quarterly Sales 00:09:31
      20. Dashboard – Unfulfilled Orders 00:02:14
      21. Dashboard – Recent Orders 00:02:14
      22. Node.js and MongoDB – Modeling in Mongoose 00:03:09
      23. ExpressJS – Setting Up the Routes 00:06:49
      24. AngularJS – Hooking Up the API 00:08:12
      25. Full Stack – Adding a Customer 00:04:55
      26. Full Stack – Adding a Sale 00:04:39
      27. Node.js – Testing the Routes 00:04:17
      28. Node.js – Testing the API 00:09:01
      29. AngularJS – Testing the API 00:03:01
      30. AngularJS – Testing the Controllers 00:04:02
      31. AngularJS – Testing the Services 00:03:20
      32. Grunt – Building a Distribution 00:03:45
      33. Heroku – Publishing Your Code 00:02:16
      34. Heroku – Setting Up the Database 00:02:04
      35. Heroku – Setting Up Environment Variables 00:02:01
      36. Viewing Your Application 00:01:57
      37. Learning Helpful Plugins 00:03:01
      38. Using the Tools 00:01:49
      39. Understanding the Caveats in Sublime 00:02:42
    5. Chapter 5 : Mastering MEAN Web Development
      1. Course Overview 00:01:52
      2. Installing the generator-mean-seed 00:05:37
      3. Running Your Site 00:01:09
      4. Web Debugger 00:02:16
      5. Using Grunt 00:03:51
      6. Configs 00:04:46
      7. Pushing to GitHub 00:02:55
      8. JavaScript, CSS, and HTML – the Frontend Building Blocks 00:05:47
      9. JavaScript Callbacks and Promises 00:09:03
      10. AngularJS – Our Frontend MVC Framework 00:08:38
      11. Node.js and Express.js – Our Backend 00:08:30
      12. MongoDB – Our Database 00:01:41
      13. Scaffolding with 'yo' 00:01:01
      14. Using the Directive and Writing Template/HTML 00:02:40
      15. Writing the Directive – Scope and Attributes 00:06:21
      16. Writing the Directive – Controller 00:06:21
      17. Writing and Running Unit Tests for the Directive 00:04:30
      18. Scaffolding the New Page/Route/Controller with 'yo' 00:01:04
      19. Under the Hood of the ng-route Generator 00:02:00
      20. Building and Accessing the New Page 00:02:37
      21. Scaffolding the New Service with 'yo' 00:01:02
      22. Under the Hood of ng-service 00:01:01
      23. Using the New Service 00:05:04
      24. Writing Controller Tests – Boilerplate and Setup 00:01:42
      25. Writing Controller Tests – the Tests 00:08:26
      26. Unit Test the Code 00:03:56
      27. Writing Service Tests - the Tests 00:06:42
      28. Bower Search 00:02:59
      29. Adding a New Bower Module 00:04:57
      30. Using Your New Angular Module 00:04:05
      31. Searching npm/nipster for a Module 00:01:51
      32. Updating package.json and Running npm Install 00:02:21
      33. Requiring a New Module and Using It 00:05:57
      34. Scaffolding a New Route with 'yo' 00:00:58
      35. Under the Hood of the Node-controller Generator 00:05:33
      36. Writing the API and Tests 00:13:28
      37. Node Integration Test Coverage 00:05:54
      38. Using the Interactive API Help Documentation 00:02:54
      39. PageObjects for Modularization 00:04:20
      40. Selectors and Filling in Forms 00:04:29
      41. Writing Our First Test 00:02:32
      42. Running with Grunt e2e 00:01:48
      43. Promises and executeAsyncScript 00:03:47
      44. Injecting and Using Angular Modules 00:02:20
      45. Setup and Teardown with Mock Data" 00:03:42
      46. Interacting with Third-party Sites" 00:03:45
      47. Buying a Server 00:03:24
      48. Setting Up the Server 00:02:43
      49. Setting Up configs and Continuous Integration 00:05:47
      50. Setting Up and Installing generator-mean-seed 00:02:04
      51. Our Main Tools/Technologies 00:01:49
      52. Angular 00:02:12
      53. Node 00:03:22
      54. Testing 00:03:49
      55. Deploying 00:03:18