Routing Path for ExpressJS

What and Why ?
Routing in ExpressJS is used to subdivide and organize the web application into multiple mini-applications each having its own functionality. It provides more functionality by subdividing the web application rather than including all of the functionality on a single page. These mini-applications combine together to form a web application. Each route in Express responds to a client request to a particular route/endpoint and an HTTP request method (GET, POST, PUT, DELETE, UPDATE and so on). Each route basically refers to the different URLs in the website. So when a URL (Eg: www.geeksforgeeks.org/login) matches a route then the function associated with that specific route is executed (In this case, the function redirects the user to the login page of GeeksforGeeks).

How it is done in Express ?
Express Router is used to define mini-applications in Express so that each endpoint/route can be dealt in more detail. So, first, we will need to include express into our application. Then we have 2 methods for defining routes in the ExpressJS.

Method 1: Without using Router: Instead of using express.router, we make use of app.method (route, function)

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

const express = require("express");
const app = express();
  
app.get("/", function(req, res) {
  res.send("This is a get request!!\n");
});
app.post("/", function(req, res) {
  res.send("This is a post request!!\n");
});
  
app.put("/", function(req, res) {
  res.send("This is a put request!!\n");
});
  
app.get("/hey", function(req, res) {
  res.send("This is a get request to '/hey'!!\n");
});
  
app.listen(3000);

chevron_right


Output:

Method 2: Using the Router: We can make use of express.router to simplify our code. Instead of specifying the path every time for a specific request, we just have to specify the path once and then we can chain the request methods to that path using the express router. The .all will be applied to all types of request methods. While the rest of them will be applied based on the request method.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

const express = require('express');
const Router = express.Router();
   
Router.route('/')
.all((req, res, next) => { 
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    next();
})
.get((req, res, next) => {
    res.end('When a GET request is made, then this '
            + 'is the response sent to the client!');
})
.post((req, res, next) => {
    res.end('When a POST request is made, then this '
            + 'is the response sent to the client!');
})
.put((req, res, next) => {
    res.end('When a PUT request is made, then this '
            + 'is the response sent to the client!');
})
.delete((req, res, next) => {
    res.end('When a DELETE request is made, then this '
            + 'is the response sent to the client!');
});
   
module.exports = Router;

chevron_right


Let’s save this file as test.js

Now we make use of the express router in index.js file as follows:

filter_none

edit
close

play_arrow

link
brightness_4
code

const express = require('Express');
const app = express();
  
const test = require('./test.js');
  
app.use('/test', test);
  
app.listen(3000);

chevron_right


Note: index.js and test.js should be in the same directory.

Output: The outputs obtained via the Postman software for different request methods.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.