Accessing Request Variables in Express.js

In this section, we will learn how to access request variables in Express.js — including data from query strings, request bodies, and form submissions.


✅ Accessing Query Parameters (GET Request)

We’ll start by accessing query parameters using a GET request.

UserRouter.ts

sh
getRoutes() {
this.router.get(‘/signup’, UserController.signup);
}

UserController.ts

sh
export class UserController {
static signup(req, res, next) {
res.send(req.query); // Access query parameters
}
}

Test via Postman:

Send a GET request to:

sh
http://localhost:5000/api/user/[email protected]&password=testPassword

Response::

sh
{
“email”: “[email protected]”,
“password”: “testPassword”
}

✅ This confirms we can access query parameters using req.query.


✅ Accessing Body Data (POST Request)

For POST requests, data is usually sent through the request body using either:

  • x-www-form-urlencoded (most common for forms)

  • form-data (used for file uploads, multipart)

  • raw (JSON, text, etc.)

✅ Update UserController.ts:

sh
export class UserController {
static signup(req, res, next) {
res.send(req.body); // Access POST body data
}
}

✅ Update UserRouter.ts:

sh
getRoutes() {
this.router.post(‘/signup’, UserController.signup);
}

⚠️ Problem: No Data Received?

If you send data via Postman (POST request using x-www-form-urlencoded) and get no response or empty body, it’s because Express needs a body parser middleware.


✅ Installing Body Parser

Install the required packages:

sh
npm i body-parser @types/body-parser

✅Configure Body Parser in Server.ts

sh
import * as bodyParser from ‘body-parser’;
setConfigurations() {
this.connectMongoDb();
this.configureBodyParser(); // Must come before routes
}
configureBodyParser() {
this.app.use(bodyParser.urlencoded({ extended: true }));
}

🔍 Why extended: true?
It allows parsing rich data (arrays/objects), not just strings.

✅ Test Again in Postman

  • URL: http://localhost:5000/api/user/signup

  • Method: POST

  • Body → x-www-form-urlencoded:

Key Value
email [email protected]
password testPassword

Expected Response:

sh
{
“email”: “[email protected]”,
“password”: “testPassword”
}

✅ Success! You’re now able to access POST data from the body.


🧠 Summary

Type Where to Access Example
Query Params req.query /signup?email=...&password=...
Body (POST) req.body Sent via x-www-form-urlencoded
Headers req.headers Authorization, Content-Type, etc.

 

Scroll to Top