---
title: Introduction to the Basic Node and Express Challenges
block: basic-node-and-express
superBlock: back-end-development-and-apis
---

## Introduction to the Basic Node and Express Challenges

Node.js is a JavaScript runtime that allows developers to write backend (server-side) programs in JavaScript. Node.js comes with a handful of built-in modules - small, independent programs - that help facilitate this purpose. Some of the core modules include:

- HTTP: a module that acts as a server
- File System: a module that reads and modifies files
- Path: a module for working with directory and file paths
- Assertion Testing: a module that checks code against prescribed constraints

Express, while not included with Node.js, is another module often used with it. Express runs between the server created by Node.js and the frontend pages of a web application. Express also handles an application's routing. Routing directs users to the correct page based on their interaction with the application. While there are alternatives to using Express, its simplicity makes it a good place to begin when learning the interaction between a backend powered by Node.js and the frontend.

Working on these challenges involves writing code on Replit in our starter project.

- Start by importing the project on Replit.
- Next, you will see a <code>.replit</code> window.
- Select <code>Use run command</code> and click the <code>Done</code> button.
- Complete each challenge and copy the public Replit URL (to the homepage of your app) into the challenge screen to test it!

Optionally, you may write your project on another platform, but it must be publicly visible for our testing.

Start this project on Replit using <a href='https://replit.com/github/freeCodeCamp/boilerplate-express'>this link</a> or clone <a href='https://github.com/freeCodeCamp/boilerplate-express/'>this repository</a> on GitHub! If you use Replit, remember to save the link to your project somewhere safe!
