How to Build Your First Node Server

Image by Kara Shea on Unsplash

(This article is part of an ongoing series on soft skills and technical wizardry from Nathan Thomas, a full stack software engineer studying at Lambda School in Silicon Valley. Click here for part three in the series, an article about “The Importance of Positivity,” and click here for part five, a piece about “The Pursuit of Persistence and Grit.”)

“Mom, Get the Camera!”

Coding your first server from scratch can seem intimidating when you’ve just started programming, but I promise that you’ll have one up and running before the hour is over if you follow this guide. Don’t worry if you’ve never tried Node or Express, and don’t worry if you’ve never used any of the myriad of software packages engineers use that can seem overwhelming at first. We’re not going to worry about those today.

There are only two assumptions that this article makes — One is that you’re familiar with IDEs (Integrated Development Environments, like Microsoft’s VSCode)/Text Editors, and the other is that you know how to open up a terminal bash window and navigate through folders on your computer with it. For a point of reference, the terminal is the thing that looks sort of like this (although yours may be slightly different):

If both of those statements resonated with you, then let’s move forward with taking the first step in this journey towards our own personal botnet.

Step 1: Install Node.js

Go ahead and open up your terminal window. We need to install node before we can actually create anything. I’m going to assume that you don’t have it installed.

For MacOS:

  • Type the command /usr/bin/ruby -e "$(curl -fsSL" into your terminal and hit enter. This will install Homebrew, the package manager that we’ll need to install Node.js. You can check to make sure that Homebrew installed correctly by typing brew -v into the terminal and hitting enter. If it spits you back a line of numbers, that’s the version that you have installed now.
  • Once that’s done installing, type the command brew install node into the terminal and hit enter. Go grab a coffee while you’re waiting for it to finish.

For Windows:

  • Go to the Node.js website here and download the appropriate installer bundle for your operating system. If your computer is anywhere remotely close to new, you’ll probably want to use the 64-bit source code download.
  • Open the installer and follow the directions to install Node.js on your computer.

For Linux:

  • Linux has the easiest way to install Node, as all you need to is typesudo apt-get install nodejs into your bash terminal and hit enter. This will install Node.js globally for use later on.

Step 2: Time to Find the Ghost in the Machine

Now is where the real fun begins. We’re going to install a few quick dependencies and get your shiny new server up off the ground.

First, go ahead and create a new folder on your computer. I’d recommend naming it something fun. I’m going to call mine dude, my own personal version of the classic “Hello World” application.

Next, go ahead and open that folder in your IDE or text editor of choice. I’m going to be using VSCode, but you are perfectly welcome to use whatever you are comfortable with.

Go ahead and cd in your terminal into the directory that you made for your new server; when you’re there, type the command npm init into your terminal and hit enter. Your computer is going to get cranky and ask you a bunch of irrelevant questions for a project of this size, so go ahead and just hit enter through all of them.

You’re now going to have a setup that looks like this (again, I’m using VSCode):

That little file that was created is your package.json, and it’s what tells Node about your project.

The next thing we need to do is install a single dependency called express. It’s the server framework that will allow us to “flip the switch” on this bad boy. Type npm install express into your terminal window and hit enter; you’re now going to notice that you have “express” listed on the groups of dependencies in your package.json file like this:

The next step that we need to do is create an index.js file that will run our awesome server when we turn it on. Go ahead and create one inside this same folder alongside your package.json and put the following text inside of it:

Please make sure that you create an index.js file and copy the code displayed above exactly as its displayed.

Once you’re done, save the index.js file and go back to your package.json. We need to add one more thing before we’re done, and that’s the start command so that our server will actually know how to turn on. Look for a section that says scripts in your package.json and then modify its contents to look exactly like this:

Good job. Now it’s time for the payoff for our hard work!

Step 3: Flipping the Switch

Go back to your terminal and type in the command npm start. You should see a readout on your terminal that looks something pretty much like this:

See that text reading out that we typed earlier in our index.js document? That means that our server is alive!

Now comes the fun part — Go to your browser and type the following text into your URL bar:


You should have something that looks like this when you hit enter on your URL bar:

Your very own server is running on your computer and presenting data in your browser from the API route that we wrote! That’s totally cool.

Where you take this in the future is up to you. I’ll have a couple links right below this for you in case you want to continue this journey. Thanks for coding along, and congrats on making your very first server!

Express — Documentation for the Node.js web framework

“Build RESTful APIs with Node and Express” by Programming with Mosh

Thanks for reading.


(GitHub, LinkedIn, Twitter, Instagram, and Portfolio Site)

📝 Read this story later in Journal.

🗞 Wake up every Sunday morning to the week’s most noteworthy Tech stories, opinions, and news waiting in your inbox: Get the noteworthy newsletter >




I’m just here for the free food.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

The themes are always changing, but the tokens stay the same

React Native E2E Tests with Detox and Mocha — Fast and Simple

When should I callback?

Generating the Mandelbrot Set

Svelte 完整教學-第二章

Building a Simple Web Server in Node.js

Becoming an Angular Environmentalist

Angular Libraries: entry-points, path mappings and workspace configurations

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Nathan Thomas

Nathan Thomas

I’m just here for the free food.

More from Medium

What is Node.js?

Get Started with MongoDB Atlas — MongoDB

Back-End Introduction

Automate Twitter actions using Node.js and deploy it on Heroku