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: Node for Frontend Developers

Video Description

Since its release in 2009, Node.js has experienced a meteoric rise in popularity among web developers. A server-side runtime for building web apps in JavaScript that leverages Google’s V8 engine, Node now helps power applications for companies like Uber, Walmart, PayPal, IBM, and many more. However, for frontend developers the thought of working with “backend” technologies can seem overwhelming. This learning path aims to soften the learning curve of Node for frontend developers and arm them with hands-on learning that will leverage their JavaScript programming background.

Table of Contents

  1. Background
    1. What Is Node.js 00:05:59
    2. About The Author 00:01:23
    3. Early History 00:03:31
    4. io.js 00:04:16
    5. Node.js Versioning 00:02:47
    6. Why Use Node.js 00:03:30
    7. How To Use This Course 00:00:35
    8. How To Access Your Working Files 00:01:15
  2. Architecture
    1. V8 00:02:27
    2. Event-Driven/Non-Blocking 00:05:50
    3. Timers Example 00:02:11
    4. Web Server Example 00:01:52
    5. A Single-Threaded Event Loop 00:03:46
    6. Simplified Concurrency 00:01:46
    7. Callback Convention 00:01:44
    8. Callback Does Not Necessarily Mean Non Blocking 00:02:25
  3. Modularity
    1. Script Tags In The Browser 00:04:57
    2. Modules In Node.js 00:04:14
    3. CommonJS 00:02:58
    4. Modules Have Private Scope 00:02:49
    5. Node.js Core Modules 00:03:08
  4. NPM
    1. Package Management 00:03:33
    2. Using An NPM Package 00:08:07
    3. Package Manager Benefits 00:03:52
    4. Popular Packages 00:01:58
    5. Why Not To Use Node.js 00:04:16
    6. What Next 00:00:51
  5. Setup
    1. Course Introduction 00:04:22
    2. About The Author 00:01:23
    3. Installation Mac OS X 00:01:36
    4. Installation Windows 00:01:10
    5. Using The Node.Js REPL 00:02:33
    6. Executing A Script 00:02:16
    7. Editors 00:01:12
    8. How To Access Your Working Files 00:01:15
  6. A Simple Web Server
    1. Overview 00:00:58
    2. Project Setup 00:01:48
    3. The HTTP Module 00:03:58
    4. Hello World Web Server 00:04:12
    5. Logging Incoming Requests 00:02:57
    6. Serving Static Assets 00:05:35
    7. Node Debug 00:04:36
    8. Debugging With Webstorm 00:06:15
    9. The Global Object 00:04:41
  7. Using NPM Packages
    1. Overview 00:00:47
    2. Your Own Modules 00:07:06
    3. Multiple Exports 00:06:59
    4. Serving Up A Favicon 00:03:02
    5. Callbacks 00:05:59
    6. Express 00:01:22
    7. NPM Install Express 00:03:49
    8. Hello World Express 00:06:02
    9. Serving Static Assets With Express 00:01:36
    10. Favicons 00:05:32
  8. Dev Workflow
    1. Overview 00:00:48
    2. Package.json 00:06:48
    3. Restoring Packages 00:01:47
    4. What To Check In To VCS 00:04:20
    5. Checkout Workflow 00:01:31
  9. NPM Is Not Just Javascript
    1. Tools Via NPM 00:01:10
    2. Global Packages 00:06:09
    3. Live-Server Live Reload Tool 00:02:55
    4. Uninstalling Packages 00:02:58
  10. More About NPM
    1. NPM Start 00:02:38
    2. NPM Run 00:02:18
    3. Finding The Right NPM Package 00:02:40
    4. Listing Installed Packages 00:01:06
    5. Getting Help With NPM 00:00:44
    6. Getting Help For A Package 00:02:43
    7. NPM Tab Completion 00:02:04
    8. Installing A Specific Package Version 00:01:16
    9. Tracking Favorite Packages 00:02:04
    10. Updating A Package 00:01:51
  11. Course Wrapup
    1. Webstorm Live Edit To Quickly Load Code Changes 00:04:55
    2. Modules Are Singletons 00:02:13
    3. Unhandled Exceptions 00:02:05
    4. The End 00:01:07
  12. Setting Up A Web App
    1. What You Will Learn 00:03:28
    2. About The Author 00:01:23
    3. Project Setup 00:02:14
    4. Spinning Up Our Server From Scratch 00:05:11
    5. Serving Index.HTML 00:04:32
    6. Serving Bootstrap Assets 00:05:52
    7. Styling Our Site 00:01:16
    8. How To Access Your Working Files 00:01:15
  13. The Jade View Engine
    1. Why View Engines? 00:02:10
    2. The Jade View Engine 00:06:32
    3. HTML Tags In Jade 00:02:16
    4. Attributes Classes And Ids In Jade 00:02:06
    5. Serving Up Jade Views 00:04:24
    6. HTML Reuse In Jade 00:06:26
    7. Code In Jade Views 00:02:37
    8. Passing Data To View Rendering 00:02:01
    9. Setting A Default View Engine 00:00:37
    10. String Interpolation In Jade 00:02:30
    11. Generating Tables In Jade 00:03:50
    12. Tabs And Spaces Oh My 00:01:21
    13. Demystifying Jade 00:02:21
  14. Crud
    1. Setting The Stage 00:01:01
    2. Add Chat Room View 00:04:21
    3. Post Chat Room Form 00:06:56
    4. Parsing Form Data From The Request Body 00:04:22
    5. Responding With JSON 00:03:20
    6. Admin Chat Rooms Workflow 00:02:21
    7. Named Route Parameters To Delete Rooms 00:05:59
    8. Edit Chat Rooms 00:06:01
    9. Edit Chat Rooms Part - 2 00:02:00
    10. Responding With 404 Not Found 00:01:39
    11. Wrap Up 00:01:23
  15. Routers
    1. Extracting An Admin Module 00:04:47
    2. Modular Admin Router 00:04:00
    3. Pluggable Admin Mount Path 00:03:15
    4. Stumbling Block - Relative Redirects 00:02:49
    5. Chaining Routes 00:01:57
  16. Middleware
    1. Understanding Routing And Middleware 00:05:45
    2. Adding Custom Logging Middleware 00:02:15
    3. Understanding Next() 00:01:31
    4. Middleware To Fetch Data 00:07:24
    5. Order Matters.Av 00:01:09
    6. Scoping Middleware 00:03:53
    7. What To Do With Errors 00:03:01
    8. Last Thoughts 00:03:19
  17. APIs
    1. A Client Side Chat App 00:01:55
    2. Setup The Client Side Chat App 00:03:01
    3. Creating An API 00:05:42
    4. Modules Are Singletons 00:01:50
    5. Postman To Test API 00:01:24
    6. API Get Room Messages 00:05:49
    7. Posting To An API 00:03:37
    8. API To Delete Messages 00:03:15
    9. Parsing JSON In The Request Body 00:03:25
  18. Logging And Debugging
    1. Express-Debug 00:03:03
    2. Logging With Morgan 00:01:45
    3. File Access Log With Morgan 00:01:28
    4. Built-In Express Debugging 00:01:57
  19. When Things Go Wrong
    1. Throwing An Error In A Route Handler 00:01:39
    2. Errors In Production 00:01:53
    3. Custom Error Handlers 00:02:40
    4. Browser Hangs 00:00:58
    5. Hanging Async Request Handlers 00:01:17
    6. Errors In Callbacks 00:03:32
    7. Don't Swallow Callback Errors 00:02:46
  20. Auth With Passport
    1. Auth With Passport 00:01:49
    2. Login Form 00:06:31
    3. Passport User Validation 00:05:20
    4. Passport Session Serialization 00:01:49
    5. Logging In 00:06:23
    6. Logout 00:03:52
    7. Authorizing Access To Block Anonymous Users 00:03:40
    8. Protecting Admin Routes 00:02:04
    9. Using User Information 00:02:48
    10. Bypassing Login In Development 00:03:11
    11. Query String Parameters 00:02:34
    12. Auth Cookies 00:02:17
    13. Last Thoughts 00:05:45
  21. MongoDB
    1. Welcome 00:08:23
    2. About The Author 00:01:23
    3. The Sample Application 00:05:31
    4. JSON Analogy 00:04:01
    5. SQL Vs DocumentDB 00:07:48
    6. Running MongoDB Locally 00:03:01
    7. Connecting With Mongo CLI 00:03:13
    8. Robomongo 00:01:49
    9. Inserting Documents 00:03:30
    10. Objectids 00:00:42
    11. Inserting Users 00:07:49
    12. How To Access Your Working Files 00:01:15
  22. The Native Driver
    1. MongoDB Node.js Native Driver 00:04:51
    2. Inserting Documents From Node.js 00:02:47
    3. DB.Close() 00:01:06
    4. Querying Rooms 00:07:10
    5. Create Rooms 00:02:02
    6. Deleting Rooms 00:07:09
    7. Finding A Room By ID 00:05:10
    8. Replacing Documents 00:05:27
    9. Handling Errors 00:03:40
  23. Sanity With Promises
    1. Why Promises 00:01:04
    2. Connect With Promises 00:06:07
    3. Querying With Promises 00:02:27
    4. Promise Control Flow Debugging 00:03:10
    5. Simplify Error Handling With Promises 00:04:05
    6. Promises Handle Throws Too 00:01:58
    7. Promises Cache DB Connection 00:03:53
    8. Chaining Promises To Further Simplify 00:04:44
    9. Extracting A ChatDB Module 00:04:22
    10. Converting From Callbacks To Promises Part - 1 00:05:36
    11. Converting From Callbacks To Promises Part - 2 00:02:57
    12. Benefits Of Refactoring Callbacks To Promises 00:01:53
    13. Gracefully Closing DB Connections 00:03:03
    14. Promises Plus Generators With co 00:04:26
    15. co-express 00:03:37
    16. EsS016 Async Await 00:05:47
  24. Getting Started With Mongoose
    1. Mongoose 00:02:47
    2. Importing Users With Mongoose 00:09:13
    3. Collection Names 00:01:46
    4. Disconnect 00:00:47
    5. Strict Mode Throw And Overriding Mongoose Promises 00:03:44
    6. Strict Mode False To Allow Extra Fields 00:01:36
    7. Schema Conversion And Validation 00:02:22
    8. Finishing The User Schema 00:01:50
  25. Mongoose With Express
    1. Extracting A User Model Module 00:04:47
    2. Querying Users 00:03:25
    3. Connect Once With Mongoose 00:02:20
    4. Debugging Models 00:01:09
    5. Creating Users 00:03:20
    6. Finding A User By ID 00:03:27
    7. Saving User Changes 00:02:21
    8. Delete Users 00:02:21
    9. Decouple Mongoose Connect 00:06:50
    10. Catching Errors 00:02:16
    11. Showing Validation Errors 00:07:16
    12. Further Validation 00:05:13
  26. Grab Bag
    1. Filtering Documents 00:07:02
    2. Using Query Operators 00:03:15
    3. Native Driver Logging 00:07:09
    4. Mongoose Logging 00:02:28
    5. Partial Update With $Set 00:03:55
    6. Unset And Rename 00:01:37
    7. To Replace Or Update 00:02:21
    8. Sriracha For Automatic Admin Portals 00:06:22
    9. Everything Is A Document 00:03:24
    10. Further Learning 00:08:19
    11. Challenge 00:02:38