Getting Started

NodeJS Course


Like we learned in the introduction lesson, Node.js is really just JavaScript. So a basic understanding of JavaScript is necessary in order to understand Node. For this reason, it is highly recommended that you take our prerequisite JavaScript course before continuing with this course.

This lesson will take you through a tutorial that will teach you the basic modules and functions that you need to get up and running with Node.js. The project that comes at the end of this section will ask you to use Node to create a basic website that will include an Index, About and Contact Me page. So while learning the topics in this lesson, be on the lookout for things that might help you complete the project.

Important notice

Recently the team removed a large amount of content from their website. Several of those removed pages were linked to in this lesson. Until we find a replacement for that content we will be linking directly to the markdown files on their GitHub repository. The formatting may look a bit odd, but the content should still be just as good.

Lesson overview

This section contains a general overview of topics that you will learn in this lesson.

  • Explain some things that Node.js is commonly used for.
  • Create and use modules in Node.js (both built-in and user created).
  • Set up a basic webserver with Node.js using the HTTP module.
  • Read, create, update, and delete files from Node.js.
  • Use the URL module to parse a url address and split it into readable parts.
  • Understand how to use NPM.
  • Create, fire and listen for your own events.


  • Let’s dive in and start looking at Node server-side code! We will be hopping around lessons in the docs which you should follow along.
    • Get Started
      • Learn how to run Node.js scripts from the terminal in this lesson.
      • Learn quickly about .env files and how we use them here! This will become very important in the future when working with databases and other sensitive credentials!
    • HTTP Module
      • Learn how to make HTTP requests with Node.
      • Checkout http.createServer from the http module. The documentation shows optional parameters it can accept which you may or may not use. For now, you just need to know that the createServer method creates an HTTP server that accepts handlers that will be executed every time we get a request.
    • File System
      • First, take a look at the fs module that we use heavily for working with files in Node.
      • Then, let’s start writing files in Node.
      • Finally, we’ll learn how to read files.
    • The URL Class
      • Check out this documentation on the URL class. Play with the code samples to see how it works!
    • NPM
    • Events
      • Follow along the Event Emitter section.
      • Look into this section to see the events module.
  • Although a bit outdated, the W3 Schools introduction to Node.js is super useful! Go to the W3 Schools node tutorial and code along with the following lessons (which should be listed on the sidebar of their site). Specifically, work from the Node.js Intro through to Node.js Events. You can look at the File Uploads and Email sections if you’re feeling particularly ambitious!

    The URL module is very outdated. Refer to the earlier link if you run into issues in the Node.js URL Module from W3.

Knowledge check

This section contains questions for you to check your understanding of this lesson. If you’re having trouble answering the questions below on your own, review the material above to find the answer.

Additional resources

This section contains helpful links to other content. It isn’t required, so consider it supplemental.

  • This crash course video from TraversyMedia is a great code-along for getting into Node.js. It may seem repetitive after completing the assignment, but practice is repetition!
  • This crash course playlist of 12 episodes from Net Ninja is a great resource to learn Node.js. There are 12 videos in this playlist, you can consider them all.

Support us!

The Odin Project is funded by the community. Join us in empowering learners around the globe by supporting The Odin Project!