Build a Network Application with Node

Build, tune, and test a tangible NodeJS application from start to finish
3.3 (3 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
82 students enrolled
$85
Take This Course
  • Lectures 37
  • Contents Video: 2 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2014 English

Course Description

This video course is a step-by-step guide for creating a high performance server in JavaScript. The course begins with installing Node, to understanding modules and file streams, and setting up a server. The course also teaches you different web application frameworks and explores advanced features such as web sockets and key-value stores.

This comprehensive video tutorial will take you from a beginner-level programmer and teach you everything you need to know to get productive with Node. Fundamental concepts are illustrated with brief examples and many sample projects that help grasp the complex functionality in an easy manner.

With a primer on modules and npm, you'll understand how to work with building blocks of Node and publish your own creations. Accelerated development with frameworks like Express will make your app more responsive with caching and real-time communication.

This course is an indispensible guide to building a Node app, whether from the ground up or with the help of higher-level frameworks.

About the Author

Joe Stanco (@JoeStanco) is a frontend developer living in NYC. His fascination with code started with the Tandy “Trash 80” PC—a present for his seventh birthday. He has been programming in JavaScript for 15 years. A versatile developer, he has cultivated expertise in UI design as well as proficiency in backend languages such as Ruby, PHP, and Perl. He holds a BA from Bard College and a certificate in Software Development from Columbia University. Joe currently oversees a team at BuzzFeed tasked with implementing R&D projects and innovative partner integrations for clients like GE and Pepsi. He has worked at a variety of startups throughout his career, including Animoto, ASMALLWORLD, Vonage, and Travelocity. In his free time, he teaches 4th graders how to build robots with Lego Mindstorms for NY Cares. He is also an avid supporter of LISA (Leaders in Software and Art), a digital art salon founded in 2009.

What are the requirements?

  • Experience with Node is not essential, but familiarity with JavaScript is highly recommended.
  • This video course covers the fundamentals while teaching you the practical applications of these concepts to build a network app, use high-level frameworks, and test the app. It also covers a detailed explanation on performance optimization, code organization, process management, and automated testing.

What am I going to get from this course?

  • Manage the Node process and spawn child processes
  • Configure and publish a Node package
  • Handle data flows with Node's new Stream2 API
  • Build and optimize a static web server
  • Reuse more code with Connect middleware components
  • Implement an app using a higher level framework like Express
  • Create, read, update, and delete documents in a MongoDB collection
  • Transmit data over web sockets in real time with Socket.IO

What is the target audience?

  • If you wish to get up to speed with the basics of Node, harness the performance benefits of non-blocking IO, and build a complete app from start to finish, this course is for you.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Getting Started with Node
03:12

Get a Node server running and import modules into your Node project.

02:17

The mechanics of a Node server may not be obvious at first. Get familiar with some essential techniques for running an HTTP server.

Section 2: Node Modules
03:02

Understand the composition of Node modules so that you can write your own.

04:13

Get to know the different types of module files and the variety of ways in which modules can be imported.

01:38

Modules often have dependencies. Use best practices to avoid conflicts.

01:59

npm offers a wealth of commands. Get familiar with a selection of the most useful ones.

03:13

The package descriptor serves many purposes. Learn the key settings to get the most out of your Node project.

Section 3: Understanding Events
02:32

Node programs use the event loop to manage control flow. Learn how to use it to the maximum effect.

02:59

Callbacks are everywhere in Node. Use them to advantage of event-driven I/O.

03:01

Node relies on many conventions to ensure predictability among modules. Learn how to avoid common pitfalls.

02:29

Many modules communicate through events. Generate and respond to the modules with EventEmitter.

Section 4: Working with File Streams
04:11

Resolve paths and get information about system resources.

03:54

Read/write a file, all at once or in parts.

03:05

Take advantage of the stream design pattern to work with I/O.

Section 5: Running an HTTP Server
04:00

Building a network application from scratch used to be unheard of. Now you can easily create a custom server with Node.

03:51

HTML responses are useless without images, CSS, and JavaScript. Serve static files for a richer web application.

03:24

Node is fast, but best practices can help minimize requests to the server and reduce data payload to the client.

Section 6: The Connect Framework
04:16

Negotiating the minutiae of HTTP can be time consuming. Speed up development by taking advantage of middleware.

03:34

Serving static files is a common networking task. Use Connect's middleware components to handle uploads

02:34

Getting the most out of your server is critical. Connect offers some handy optimizations.

Section 7: The Express Framework
04:57

Rather than reinventing the wheel, reuse the framework code.

03:36

Data persistence is complex, but sessions provide a simple (yet limited) solution.

02:23

Apps aren't much of use if they can't receive user data. Store values from a submitted form into the session.

04:39

Improve debugging by generating log files and capturing exceptions.

Section 8: Using View Templates
03:22

There are many template engines to choose from these days. Make an informed decision by understanding the key differences among them.

04:03

The HTML markup should be separated from the rest of your app. Use templates to keep the presentation code in its proper place.

04:17

Complex apps often require a sophisticated presentation layer. Learn how to make your templates smarter and more reusable.

Section 9: Data Storage
04:25

Add highly scalable, long-term storage to your app with MongoDB.

03:48

Keep your code clean by encapsulating the database connection logic.

04:16

Utilize Mongoose's data modeling environment to define models and enforce validation.

04:21

Manage documents in a database with ease using Mongoose methods.

04:34

Complex data relationships are often necessary. Use subdocuments to define parent-child relationships between models.

Section 10: Using Socket.IO
03:07

Users prefer apps that update content dynamically. Socket.IO provides a unified API for implementing real-time features in Node.

03:57

Users want to know when new content is available. A notification can prompt users to reload the page when the content is added.

03:39

Users would rather not click to see new data. Show updated content in real time with SocketIO.

Section 11: Automated Testing
04:57

Manual testing is often tedious and error prone. Using automated testing can save time and produce informative test reports.

04:56

An application becomes complex as it grows. Integration tests help to manage this complexity by confirming that the server's API behaves as expected.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

Over the past ten years Packt Publishing has developed an extensive catalogue of over 2000 books, e-books and video courses aimed at keeping IT professionals ahead of the technology curve. From new takes on established technologies through to the latest guides on emerging platforms, topics and trends – Packt's focus has always been on giving our customers the working knowledge they need to get the job done. Our Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.

Ready to start learning?
Take This Course