Open In App

Difference between req.query and req.params in Express

Last Updated : 17 Jan, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will learn about the req.query and req.params and we will also learn the difference between them.

req.query: Dealing with URL Stuff:

  • Where the Data Comes From: It’s from the extra bits attached to the end of a URL, like when you fill out a form or put something in the search bar.
  • When to Use It: Great for handling info from URLs, especially when things like search terms are involved.

Example: using req.query:

Javascript




app.get('/search', (req, res) => {
const searchTerm = req.query.query;
// Do something with the search term
});


req.params: Figuring Out Route Things:

  • Where the Data Comes From: It grabs values from the changing parts in the URL, those bits with colons that can be different each time.
  • When to Use It: Handy when you want your web page to work with different values in the same kind of URL setup.

Example: using req.params:

Javascript




// Example of using req.params
app.get('/user/:id', (req, res) => {
const userId = req.params.id;
// Fetch info based on the user ID
});


Difference between req.query and req.params in Express:

Aspect

req.query

req.params

Source of Data

Extra bits at the end of a URL (e.g., form inputs, search bar)

Changing parts in the URL marked by colons

Example URL

‘/search?q=example’

‘/users/:id’

Usage

Ideal for handling URL parameters, especially with search terms

Useful when dealing with dynamic values within a consistent URL structure

Express.js Example

‘javascript app.get(‘/search’, (req, res) => { const searchTerm = req.query.q; // Process search term });

`javascript app.get(‘/users/:id’, (req, res) => { const userId = req.params.id; // Fetch user details based on dynamic user ID });

Scenario Example

Handling a search feature on a website

Accessing user-specific information on a page

Steps to Setup Backend with Node.js and Express:

Step 1: Creating express app:

npm init -y

Step 2: Installing the required packages

npm install express

Example: Create a file named server.js and add the following code:

Javascript




const express = require('express');
const app = express();
const PORT = 3000;
 
// Route using req.query
app.get('/search',
    (req, res) => {
        const searchTerm =
            req.query.q || 'No search term provided';
        res.send(`Search Term: ${searchTerm}`);
    });
 
// Route using req.params
app.get('/users/:id',
    (req, res) => {
        const userId =
            req.params.id || 'No user ID provided';
        res.send(`User ID: ${userId}`);
    });
 
// Start the server
app.listen(PORT,
    () => {
        console.log(`Server is running at http://localhost:${PORT}`);
    });


Steps to run the App:

node server.js

Ouput for req.params:

Screenshot-2567-01-15-at-001008

Response when we send params

Ouput for req.query:

Screenshot-2567-01-15-at-000714

Response when we send query params

Conclusion:

To keep it simple, req.query deals with data from the end of a URL, while req.params grabs values from dynamic parts of the URL. Whether you’re dealing with a search form or creating web pages with changing parts, knowing when to use each makes Express.js a lot less confusing.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads