DEV Community

Khalil Habib Shariff
Khalil Habib Shariff

Posted on • Updated on

Building a Simple API with Node.js and Express

1.Setting Up the Project:
To get started, create a new directory for your project and navigate into it using the terminal. Then, initialize a new Node.js project by running the following command:

npm init -y

Enter fullscreen mode Exit fullscreen mode

This will create a package.json file in your project directory, which is used to manage your project's dependencies and scripts.

Next, install the express package by running the following command:

npm install express

Enter fullscreen mode Exit fullscreen mode

This will install express and its dependencies in your project.

2.Creating a Simple Server:
Create a new file called server.js in your project directory, and add the following code:

const express = require('express');
const app = express();

app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});

Enter fullscreen mode Exit fullscreen mode

This code imports the express package and creates a new instance of the express application. We then call the app.listen() method to start the server and listen for incoming requests on port 3000.

3.Creating Routes:
To create a route, we need to define an HTTP method and a URL path, and associate it with a callback function that will handle the request. In express, we can use the app.get(), app.post(), app.put(), and app.delete() methods to define routes for different HTTP methods.
For example, let's create a route that responds to GET requests to the root URL ('/'):

app.get('/', (req, res) => {
  res.send('Hello, world!');
});

Enter fullscreen mode Exit fullscreen mode

This code defines a route for GET requests to the root URL ('/'), and sends a response with the text 'Hello, world!'.

4.Parsing Request Bodies:
To parse request bodies, we can use the body-parser package. First, install the package by running the following command:

npm install body-parser

Enter fullscreen mode Exit fullscreen mode

Then, import it in your server.js file and use it as middleware:

const bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

Enter fullscreen mode Exit fullscreen mode

This code tells express to use the body-parser middleware to parse request bodies encoded in URL-encoded form or JSON format.

5.Creating Routes that Handle Data:
Let's create another route that responds to POST requests to the /items URL, and expects a JSON-encoded request body with an id and a name property. We'll store the items in an array for now:

let items = [];

app.post('/items', (req, res) => {
  const { id, name } = req.body;
  items.push({ id, name });
  res.status(201).json({ message: 'Item created', item: { id, name } });
});

Enter fullscreen mode Exit fullscreen mode

This code defines a route for POST requests to the /items URL, and uses destructuring to extract the id and name properties from the request body. We then push the new item to the items array and send a response with a JSON-encoded message and the new item.

6.Testing the API:
To test your API, start the server by running the following command in your project directory:

node server.js

Enter fullscreen mode Exit fullscreen mode

Then, use a tool like curl or Postman to send requests to your API and verify that it works as expected.

Congratulations, you've created a simple API with Node.js! Of course, this is just the beginning - there's a lot more to learn about Node.

Top comments (0)