1. Урок 1. 00:06:59
    Welcome to the Class!
  2. Урок 2. 00:01:05
    Grab the PDF Guide
  3. Урок 3. 00:00:57
    Section Intro: Installing and Exploring Node.js
  4. Урок 4. 00:08:52
    Installing Node.js and Visual Studio Code
  5. Урок 5. 00:15:32
    What is Node.js?
  6. Урок 6. 00:16:25
    Why Should I Use Node.js?
  7. Урок 7. 00:06:20
    Your First Node.js Script
  8. Урок 8. 00:01:04
    Section Intro: Node.js Module System
  9. Урок 9. 00:16:29
    Importing Node.js Core Modules
  10. Урок 10. 00:16:36
    Importing Your Own Files
  11. Урок 11. 00:16:58
    Importing npm Modules
  12. Урок 12. 00:14:24
    Printing in Color
  13. Урок 13. 00:08:44
    Global npm Modules and nodemon
  14. Урок 14. 00:00:56
    Section Intro: File System and Command Line Args
  15. Урок 15. 00:09:46
    Getting Input from Users
  16. Урок 16. 00:15:22
    Argument Parsing with Yargs: Part I
  17. Урок 17. 00:11:22
    Argument Parsing with Yargs: Part II
  18. Урок 18. 00:17:52
    Storing Data with JSON
  19. Урок 19. 00:18:34
    Adding a Note
  20. Урок 20. 00:15:00
    Removing a Note
  21. Урок 21. 00:14:15
    ES6 Aside: Arrow Functions
  22. Урок 22. 00:14:32
    Refactoring to Use Arrow Functions
  23. Урок 23. 00:05:31
    Listing Notes
  24. Урок 24. 00:11:51
    Reading a Note
  25. Урок 25. 00:01:33
    Section Intro: Debugging Node.js
  26. Урок 26. 00:17:12
    Debugging Node.js
  27. Урок 27. 00:04:54
    Error Messages
  28. Урок 28. 00:01:15
    Section Intro: Asynchronous Node.js
  29. Урок 29. 00:08:01
    Asynchronous Basics
  30. Урок 30. 00:18:15
    Call Stack, Callback Queue, and Event Loop
  31. Урок 31. 00:24:32
    Making HTTP Requests
  32. Урок 32. 00:19:42
    Customizing HTTP Requests
  33. Урок 33. 00:18:32
    An HTTP Request Challenge
  34. Урок 34. 00:18:43
    Handling Errors
  35. Урок 35. 00:16:19
    The Callback Function
  36. Урок 36. 00:18:54
    Callback Abstraction
  37. Урок 37. 00:14:56
    Callback Abstraction Challenge
  38. Урок 38. 00:13:35
    Callback Chaining
  39. Урок 39. 00:15:05
    ES6 Aside: Object Property Shorthand and Destructuring
  40. Урок 40. 00:12:45
    Destructuring and Property Shorthand Challenge
  41. Урок 41. 00:16:01
    Bonus: HTTP Requests Without a Library
  42. Урок 42. 00:01:41
    Section Intro: Web Servers
  43. Урок 43. 00:18:22
    Hello Express!
  44. Урок 44. 00:07:04
    Serving up HTML and JSON
  45. Урок 45. 00:14:50
    Serving up Static Assets
  46. Урок 46. 00:11:31
    Serving up CSS, JS, Images, and More
  47. Урок 47. 00:20:05
    Dynamic Pages with Templating
  48. Урок 48. 00:07:27
    Customizing the Views Directory
  49. Урок 49. 00:16:25
    Advanced Templating
  50. Урок 50. 00:14:02
    404 Pages
  51. Урок 51. 00:16:57
    Styling the Application: Part I
  52. Урок 52. 00:13:48
    Styling the Application: Part II
  53. Урок 53. 00:00:53
    Section Intro: Accessing API from Browser
  54. Урок 54. 00:17:08
    The Query String
  55. Урок 55. 00:10:32
    Building a JSON HTTP Endpoint
  56. Урок 56. 00:11:53
    ES6 Aside: Default Function Parameters
  57. Урок 57. 00:12:53
    Browser HTTP Requests with Fetch
  58. Урок 58. 00:14:19
    Creating a Search Form
  59. Урок 59. 00:14:07
    Wiring up the User Interface
  60. Урок 60. 00:01:04
    Section Intro: Application Deployment
  61. Урок 61. 00:09:48
    Joining Heroku and GitHub
  62. Урок 62. 00:07:52
    Version Control with Git
  63. Урок 63. 00:07:00
    Exploring Git
  64. Урок 64. 00:17:11
    Integrating Git
  65. Урок 65. 00:08:48
    Setting up SSH Keys
  66. Урок 66. 00:11:58
    Pushing Code to GitHub
  67. Урок 67. 00:15:56
    Deploying Node.js to Heroku
  68. Урок 68. 00:16:05
    New Feature Deployment Workflow
  69. Урок 69. 00:08:38
    Avoiding Global Modules
  70. Урок 70. 00:01:10
    Section Intro: Databases and Advanced Asynchronous Development
  71. Урок 71. 00:08:07
    MongoDB and NoSQL Databases
  72. Урок 72. 00:08:11
    Installing MongoDB on macOS and Linux
  73. Урок 73. 00:08:31
    Installing MongoDB on Windows
  74. Урок 74. 00:06:55
    Installing Database GUI Viewer
  75. Урок 75. 00:19:19
    Connecting and Inserting Documents
  76. Урок 76. 00:16:43
    Inserting Documents
  77. Урок 77. 00:15:14
    The ObjectID
  78. Урок 78. 00:17:13
    Querying Documents
  79. Урок 79. 00:18:04
    Promises
  80. Урок 80. 00:16:07
    Updating Documents
  81. Урок 81. 00:07:47
    Deleting Documents
  82. Урок 82. 00:01:05
    Section Intro: REST APIs and Mongoose
  83. Урок 83. 00:16:39
    Setting up Mongoose
  84. Урок 84. 00:05:27
    Creating a Mongoose Model
  85. Урок 85. 00:17:35
    Data Validation and Sanitization: Part I
  86. Урок 86. 00:11:57
    Data Validation and Sanitization: Part II
  87. Урок 87. 00:15:22
    Structuring a REST API
  88. Урок 88. 00:08:14
    Installing Postman
  89. Урок 89. 00:20:30
    Resource Creation Endpoints: Part I
  90. Урок 90. 00:09:02
    Resource Creation Endpoints: Part II
  91. Урок 91. 00:13:54
    Resource Reading Endpoints: Part I
  92. Урок 92. 00:06:38
    Resource Reading Endpoints: Part II
  93. Урок 93. 00:19:11
    Promise Chaining
  94. Урок 94. 00:07:20
    Promise Chaining Challenge
  95. Урок 95. 00:17:41
    Async/Await
  96. Урок 96. 00:12:21
    Async/Await: Part II
  97. Урок 97. 00:16:17
    Integrating Async/Await
  98. Урок 98. 00:16:01
    Resource Updating Endpoints: Part I
  99. Урок 99. 00:08:50
    Resource Updating Endpoints: Part II
  100. Урок 100. 00:09:53
    Resource Deleting Endpoints
  101. Урок 101. 00:14:49
    Separate Route Files
  102. Урок 102. 00:01:05
    Section Intro: API Authentication and Security
  103. Урок 103. 00:11:30
    Securely Storing Passwords: Part I
  104. Урок 104. 00:19:21
    Securely Storing Passwords: Part II
  105. Урок 105. 00:13:31
    Logging in Users
  106. Урок 106. 00:12:04
    JSON Web Tokens
  107. Урок 107. 00:13:46
    Generating Authentication Tokens
  108. Урок 108. 00:12:56
    Express Middleware
  109. Урок 109. 00:20:00
    Accepting Authentication Tokens
  110. Урок 110. 00:17:26
    Advanced Postman
  111. Урок 111. 00:11:13
    Logging Out
  112. Урок 112. 00:11:06
    Hiding Private Data
  113. Урок 113. 00:12:19
    Authenticating User Endpoints
  114. Урок 114. 00:19:23
    The User/Task Relationship
  115. Урок 115. 00:15:56
    Authenticating Task Endpoints
  116. Урок 116. 00:05:27
    Cascade Delete Tasks
  117. Урок 117. 00:01:22
    Section Intro: Sorting, Pagination, and Filtering
  118. Урок 118. 00:06:49
    Working with Timestamps
  119. Урок 119. 00:11:41
    Filtering Data
  120. Урок 120. 00:11:04
    Paginating Data
  121. Урок 121. 00:11:09
    Sorting Data
  122. Урок 122. 00:00:59
    Section Intro: File Uploads
  123. Урок 123. 00:19:02
    Adding Support for File Uploads
  124. Урок 124. 00:15:15
    Validating File Uploads
  125. Урок 125. 00:04:37
    Validation Challenge
  126. Урок 126. 00:08:17
    Handling Express Errors
  127. Урок 127. 00:15:11
    Adding Images to User Profile
  128. Урок 128. 00:07:57
    Serving up Files
  129. Урок 129. 00:11:48
    Auto-Cropping and Image Formatting
  130. Урок 130. 00:00:58
    Section Intro: Sending Emails
  131. Урок 131. 00:17:01
    Exploring SendGrid
  132. Урок 132. 00:16:27
    Sending Welcome and Cancelation Emails
  133. Урок 133. 00:19:10
    Environment Variables
  134. Урок 134. 00:15:29
    Creating a Production MongoDB Database
  135. Урок 135. 00:19:31
    Heroku Deployment
  136. Урок 136. 00:01:41
    Section Intro: Testing Node.js
  137. Урок 137. 00:15:58
    Jest Testing Framework
  138. Урок 138. 00:17:55
    Writing Tests and Assertions
  139. Урок 139. 00:06:20
    Writing Your Own Tests
  140. Урок 140. 00:14:14
    Testing Asynchronous Code
  141. Урок 141. 00:05:55
    Testing an Express Application: Part I
  142. Урок 142. 00:14:19
    Testing an Express Application: Part II
  143. Урок 143. 00:14:28
    Jest Setup and Teardown
  144. Урок 144. 00:13:12
    Testing with Authentication
  145. Урок 145. 00:12:49
    Advanced Assertions
  146. Урок 146. 00:05:58
    Mocking Libraries
  147. Урок 147. 00:16:21
    Wrapping up User Tests
  148. Урок 148. 00:15:11
    Setup Task Test Suite
  149. Урок 149. 00:16:16
    Testing with Task Data
  150. Урок 150. 00:02:48
    Bonus: Extra Test Ideas
  151. Урок 151. 00:00:50
    Section Intro: Real-Time Web Applications with Socket.io
  152. Урок 152. 00:13:15
    Creating the Chat App Project
  153. Урок 153. 00:06:09
    WebSockets
  154. Урок 154. 00:12:03
    Getting Started with Socket.io
  155. Урок 155. 00:17:11
    Socket.io Events
  156. Урок 156. 00:15:40
    Socket.io Events Challenge
  157. Урок 157. 00:06:23
    Broadcasting Events
  158. Урок 158. 00:15:12
    Sharing Your Location
  159. Урок 159. 00:13:26
    Event Acknowledgements
  160. Урок 160. 00:11:23
    Form and Button States
  161. Урок 161. 00:12:46
    Rendering Messages
  162. Урок 162. 00:10:29
    Rendering Location Messages
  163. Урок 163. 00:20:28
    Working with Time
  164. Урок 164. 00:07:06
    Timestamps for Location Messages
  165. Урок 165. 00:13:11
    Styling the Chat App
  166. Урок 166. 00:06:18
    Join Page
  167. Урок 167. 00:14:38
    Socket.io Rooms
  168. Урок 168. 00:17:16
    Storing Users: Part I
  169. Урок 169. 00:07:59
    Storing Users: Part II
  170. Урок 170. 00:14:12
    Tracking Users Joining and Leaving
  171. Урок 171. 00:14:30
    Sending Messages to Rooms
  172. Урок 172. 00:11:38
    Rendering User List
  173. Урок 173. 00:16:04
    Automatic Scrolling
  174. Урок 174. 00:08:07
    Deploying the Chat Application
  175. Урок 175. 00:00:51
    Section Intro
  176. Урок 176. 00:04:00
    New Feature Ideas
  177. Урок 177. 00:02:40
    Bonus: What should I learn next?