We may earn an affiliate commission when you visit our partners.
Course image
Mosh Hamedani

What is Node.js?

Node.js, or Node, is a runtime environment for executing JavaScript code outside of a browser. It is ideal for building highly-scalable, data-intensive backend services (APIs) that power your client’s apps (web or mobile apps).

Read more

What is Node.js?

Node.js, or Node, is a runtime environment for executing JavaScript code outside of a browser. It is ideal for building highly-scalable, data-intensive backend services (APIs) that power your client’s apps (web or mobile apps).

Why learn Node?

Node is great for prototyping and agile development as well as building super fast and highly scalable apps; Companies like Uber and PayPal use Node in production to build applications because it requires fewer people and less code. Plus, Node has the largest ecosystem of open-source library, so you don’t have to build everything from scratch.

A step-by-step, A to Z course

What you’ll get when you sign up for this course:

  • 15 hours of HD videos, complete with exercises and solutions

  • A real-world project: you'll build the back-end for a video rental application, not a dummy to-do app.

  • No more wasted time on lengthy courses or out-of-date tutorials

  • Up-to-date and practical information and solutions (no fluff. )

  • The opportunity to learn at your own pace - lifetime access - so take your time if you prefer

  • Expert tips to become a Node rockstar

  • The best practices and common pitfalls to avoid

  • Watch on any device, online or offline - mobile friendly and downloadable lessons

  • Certificate of completion to present to your employer

You’ll learn to:

  • Confidently build RESTful services (APIs) using Node.js, Express.js, and MongoDB

  • Employ the best practices for Node.js

  • Avoid common mistakes

What we’ll cover:

  • Node module system

  • Node Package Manager (NPM)

  • Asynchronous JavaScript

  • Useful ES6+ features

  • Implementing CRUD operations

  • Storing complex data in MongoDB

  • Data Validation

  • Authentication and authorization

  • Handling and logging errors the right way

  • Unit and integration testing

  • Test-driven development (TDD)

  • Deployment

This course is for you if:

You’re a back-end developer who is used to working with frameworks like ASP.NET, Rails, Django, etc. You want to add Node.js to your toolbox.

You’re a front-end developer and want to transition to full-stack development.

You’ve tried other Node.js tutorials and found them to be too slow, out-of-date, and boring.

Having Node.js on your resume helps you find more jobs and make more money.

And here is what other students say:

"Absolutely the best. Highly recommended if you want to get started on Node.js from zero. I have learned what Node is and what it can do. Truly comprehensive. Perfect rating. Mosh knows his stuff and he deserves your support. On a side note, my current company uses Mosh's courses as a huge resource and reference when training / refreshing knowledge. I just want to say thank you. Please don't stop teaching. You were born with the talent to teach." -Eugene John Arellano

"Mosh is one of the top 3 instructors for modern web development. He explains difficult concepts with ease. I recommend all of his courses because of the amount of detail and his style of teaching." -Warren Isaac

"What I like most about the course is Mosh's methodology and the way how he explains the things. Very well structured course with high quality of presentation as well." -Omar Amrani

Who is your instructor?

Hi. My name is Mosh Hamedani and I help ambitious developers take their coding skills to the next level. I'm a software engineer with more than 15 years of experience and I've taught over 200,000 students through my online courses. My YouTube channel, Programming with Mosh, has been watched more than 6M times. My students describe my teaching as clear, concise, and fun, without any fluff.

Do you want to become a Node rockstar? Enroll in the course and get started.

Enroll now

What's inside

Learning objectives

  • Build the backend for your web and mobile apps
  • Use modern javascript features (es6, es7)
  • Implement crud operations
  • Handle and log errors, the right way
  • Write unit and integration tests
  • Practice test-driven development (tdd)
  • Store and retrieve complex data in mongodb
  • Implement authentication and authorization
  • Deploy your node apps to production
  • Apply the best practices for building fast, scalable and secure apps

Syllabus

Getting Started
Welcome
What is Node
Node Architecture
Read more
How Node Works
Installing Node
Your First Node Program
Course Structure
Recap
Asking Questions
Node Module System
Introduction
Global Object
Modules
Creating a Module
Loading a Module
Module Wrapper Function
Path Module
OS Module
File System Module
Events Module
Event Arguments
Extending Event Emitter
HTTP Module
Node Package Manager
Package.json
Installing a Node Package
Using a Package
Package Dependencies
NPM Packages and Source Control
Semantic Versioning
Listing the Installed Packages
Viewing Registry Info for a Package
Installing a Specific Version of a Package
Updating Local Packages
DevDependencies
Uninstalling a Package
Working with Global Packages
Publishing a Package
Updating a Published Package
Building RESTful API's Using Express
RESTful Services
Introducing Express
Building Your First Web Server
Nodemon
Environment Variables
Route Parameters
Handling HTTP GET Requests
Handling HTTP POST Requests
Calling Endpoints Using Postman
Input Validation
Handling HTTP PUT Requests
Handling HTTP Delete Requests
Project- Build the Genres API
Express- Advanced Topics
Introducion
MIddleware
Creating Custom Middleware
Built-In Middleware
Third-party Middleware
Environments
Configuration
Debugging
Templating Engines
Database Integration
Authentication
Structuring Express Applications
Project- Restructure the App
Asynchronous JavaScript
Synchronous Vs. Asynchronous Code
Patterns For Dealing With Asynchronous Code
Callbacks
Callback Hell
Named Functions to Rescue
Promises
Replacing Callbacks with Promises
Consuming Promises
Creating Settled Promises
Running Parallel Promises
Async and Await
Exercise
CRUD Operations Using MongoDB
Introducing MongoDB
Installing MongoDB on Mac
Installing MongoDB on Windows
Connecting to MongoDB
Schemas
Models
Saving a Document
Querying Documents
Comparison Query Operators
Logical Query Operators
Regular Expressions
Counting

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers the fundamentals of building the backend for modern applications, including web and mobile apps
Taught by an experienced software engineer with a strong reputation in the industry
Provides hands-on experience through exercises and a real-world project
Covers a comprehensive range of topics, including Node.js, Express.js, MongoDB, and modern JavaScript features
Suitable for both beginners and intermediate learners with some experience in back-end development
Can help learners build a strong foundation in Node.js and related technologies

Save this course

Save Node.js: The Complete Guide to Build RESTful APIs (2018) to your list so you can find it easily later:
Save

Reviews summary

Fast paced but well structured

According to students, this course has well organized and short lectures. However, some learners feel that the fast pace of instruction may not be suitable for beginners.
The course's material is organized and easy to follow.
"Nice but as a beginner i feel it as a bit fast."
"But the courses are well segregated, short and crisp."
The pace of instruction is challenging for some learners.
"Nice but as a beginner i feel it as a bit fast."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Node.js: The Complete Guide to Build RESTful APIs (2018) with these activities:
Review programming basics
Review the basics of programming before class to prepare for the course
Browse courses on Programming Basics
Show steps
  • Understand the key concepts of programming
  • Practice writing simple JavaScript programs
Show all one activities

Career center

Learners who complete Node.js: The Complete Guide to Build RESTful APIs (2018) will develop knowledge and skills that may be useful to these careers:
Database Developer
Database Developers design, develop, and maintain databases. They work closely with Back-end Developers to ensure that data is stored and accessed in an efficient and secure manner. This course includes a module that will introduce you to MongoDB, one of the most popular databases in use today. Taking this course will help you understand the role of databases, and it will be particularly valuable if you are interested in a career as a Database Developer.
Back-End Developer
Back-end Developers are responsible for the function and integrity of a web application's databases, servers, and code that runs on the server side. They write code using languages like Python, Java, and Node.js. This course will teach you about Node.js and its uses, helping you to build a foundation for a career as a Back-end Developer.
Software Developer
Software Developers design, build, and deliver applications and software products to meet the needs of a user or organization. Today's Software Developers work primarily with agile or scrum development teams and methodologies, and write code in languages like C++, C#, Java, Python, and Node.js. This course will help teach you Node.js, which is essential to becoming a Software Developer. By taking this course, you will learn how to build RESTful services and implement CRUD operations, all of which are important functions that Software Developers are responsible for.
Web Developer
Web Developers build and maintain websites for individuals and businesses. Web Developers are responsible for the aesthetic and functional aspects of a website, as well as the website's usability and responsiveness. Web Developers typically work in teams with designers, project managers, and Software Developers. Being able to work with Node.js and JavaScript is a key skill for Web Developers. This course is a great way to develop your skills in Node.js and is a must for anyone seeking a career as a Web Developer.
Full Stack Engineer
Full Stack Engineers are versatile developers who can work on both the client-side and server-side of a web application. This requires proficiency in both frameworks like Angular and React and knowledge of back-end technologies like Python and Node.js. This course does not cover Full Stack Engineering, but it will help you build a foundation in Node.js, which is one of the essential technologies for building back-end applications. For Full Stack Engineers, taking this course will help you become more versatile and valuable to potential employers.
Project Manager
Project Managers plan, execute, and close out projects, frequently using specialized project management software. They collaborate with stakeholders, set budgets, and manage project timelines. Project Managers typically need an advanced degree (MBA or Master's) and do not need to code; however, the ability to understand programming and web technologies can be a plus. This course will help you understand Node.js and its uses, which will make you a more well-rounded and attractive candidate for Project Manager positions.
Web Designer
Web Designers create and maintain the aesthetic and usability of websites. They typically work with Web Developers to implement their designs. While Node.js is not used by Web Designers, this course may be helpful in understanding some of the technical aspects of website development. 
Mobile Developer
Mobile Developers create and maintain mobile applications, with some specializing in iOS (iPhone and iPad) and others in Android. Mobile Developers work with designers as well as back-end Software Developers who create the business logic and functionality of an app. Node.js is not a typical language used for Mobile Development, but this course may be helpful for expanding your knowledge of JavaScript language fundamentals, which are used extensively in mobile development.
Computer Systems Analyst
Computer Systems Analysts design, implement, and maintain computer systems, with a focus on hardware and software integration. They work with vendors, other technicians, and end users. This course does not cover computer system hardware and maintenance, and it only minimally covers the integration of hardware and software. If you are interested in becoming a Computer Systems Analyst, there are more appropriate courses available.
Database Administrator
Database Administrators are responsible for setting up, maintaining, and optimizing data storage systems. They work with databases such as MySQL, PostgreSQL, and MongoDB. This course does not cover database administration. While MongoDB is discussed, it is not covered in great detail. If you intend to pursue a career in database administration, this course is not for you.
Systems Analyst
Systems Analysts help companies improve business efficiency by analyzing existing systems and procedures, then designing new systems to address the inefficiencies. Systems Analysts must be able to code in order to analyze and develop new systems, with Python and Java being the most commonly used languages, while Node.js is uncommon. This course is not designed for Systems Analysts and does not provide all of the skills necessary for a career in the field.
Data Analyst
Data Analysts collect, clean, and analyze data to help businesses make informed decisions. They work with databases, statistical software, and visualization tools. This course does not cover the statistical software and visualization tools commonly used by Data Analysts. Therefore, it is not a good fit for someone interested in a career as a Data Analyst.
Technical Writer
Technical Writers create user manuals, documentation, and training materials for hardware and software products. Technical Writers typically need strong writing skills and expertise in a particular field. Node.js is not commonly used in this field, and this course will not teach you the skills you need to be a Technical Writer. Therefore, this course is not for you.
Software Architect
Software Architects design and build software applications, ensuring that they are scalable, reliable, and secure. They work with Software Developers to implement their designs. Node.js is rarely used for designing software architecture, and this course does not focus on the design of software architecture. Therefore, it is not a good fit for someone interested in a career as a Software Architect.
Information Security Analyst
Information Security Analysts protect the computer systems and data of companies, governments, and other organizations. They analyze and mitigate risks to information systems by developing and implementing security measures. Information Security Analysts typically need an advanced degree (Master's or PhD), with a focus on computer science or a related field. Node.js is not commonly used in this field, and this course will not teach you the skills you need to be an Information Security Analyst.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Node.js: The Complete Guide to Build RESTful APIs (2018).
Node.js in Action comprehensive guide to building scalable, high-performance web applications with Node.js. It covers everything from the basics of Node.js to advanced topics such as clustering, performance optimization, and security.
Express.js in Action practical guide to building fast, scalable web applications with Express.js. It covers everything from the basics of Express.js to advanced topics such as routing, middleware, and security.
JavaScript: The Good Parts concise guide to the good parts of JavaScript. It covers the essential concepts of JavaScript, such as data types, functions, and objects.
You Don't Know JS series of books that covers the core concepts of JavaScript in depth. It valuable resource for anyone who wants to learn more about JavaScript.
Node.js in Practice guide to building and deploying Node.js applications. It covers a variety of topics, such as coding style, error handling, and performance optimization.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Node.js: The Complete Guide to Build RESTful APIs (2018).
Node.js for Beginners - Become a Node js Developer +...
Most relevant
C# Advanced Topics: Prepare for Technical Interviews
Most relevant
Node.js, Express, MongoDB & More: The Complete Bootcamp...
Most relevant
Xamarin Forms: Build Native Cross-platform Apps with C#
Most relevant
The Complete Node.js Developer Course (3rd Edition)
Most relevant
C# Developers: Learn the Art of Writing Clean Code
Most relevant
Docker for Node.js Projects From a Docker Captain
Most relevant
Entity Framework in Depth: The Complete Guide
Most relevant
C# Intermediate: Classes, Interfaces and OOP
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser