URL Parameters vs Query Strings in Express.js
What Are URL Parameters?
URL parameters are dynamic values inside the URL path.
They usually identify a specific resource.
Example
/users/15
Here:
15
is the URL parameter.
URL Structure Breakdown
flowchart LR
A[/users/15]
A --> B[/users = route]
A --> C[15 = parameter]
Express Route Example
app.get("/users/:id", (req, res) => {
res.send(`User ID: ${req.params.id}`);
});
Accessing URL Parameters
Use:
req.params
Example
app.get("/products/:productId", (req, res) => {
console.log(req.params);
res.send(req.params.productId);
});
URL
/products/50
Output
50
What Are Query Strings?
Query strings are optional values added after ? in a URL.
They are usually used for:
Filtering
Sorting
Searching
Pagination
Example
/products?category=shoes&sort=price
URL Breakdown
flowchart LR
A[/products] --> B[?category=shoes]
B --> C[&sort=price]
Accessing Query Strings in Express
Use:
req.query
Example
app.get("/products", (req, res) => {
console.log(req.query);
res.send(req.query.category);
});
URL
/products?category=shoes
Output
shoes
Params vs Query Strings
Practical Examples
URL Parameters → Identifiers
User Profile
/users/25
25 identifies a specific user.
Blog Post
/posts/100
100 identifies a specific post.
Query Strings → Filters or Modifiers
Search
/search?q=laptop
Pagination
/products?page=2
Sorting
/products?sort=price
Params vs Query Visualization
flowchart TD
A[/users/15] --> B[15 = Identifier]
C[/products?category=shoes] --> D[category = Filter]
Using Multiple Query Parameters
/products?category=phones&sort=price&page=2
Express Example
app.get("/products", (req, res) => {
const category = req.query.category;
const sort = req.query.sort;
res.send(`${category} - ${sort}`);
});
Output
phones - price
Using Multiple URL Parameters
app.get("/users/:userId/orders/:orderId", (req, res) => {
res.json(req.params);
});
URL
/users/15/orders/200
Output
{
"userId": "15",
"orderId": "200"
}
When to Use Params vs Query
Common Beginner Mistake
Incorrect:
/users?id=15
when identifying a specific user.
Better:
/users/15
Real-World API Examples
Combined Example
/users/15/orders?status=completed
Meaning
Express Example
app.get("/users/:id/orders", (req, res) => {
const userId = req.params.id;
const status = req.query.status;
res.send(`User: ${userId}, Status: ${status}`);
});
Key Takeaways
Final Notes
A simple rule:
Params identify what
Query strings modify how
Examples:
/products/10
Specific product.
/products?category=phones
Filtered product list.
No attachments.
0 Comments
Sign in to join the conversation
No comments yet. Be the first to comment!