The node:querystring module and modern URLSearchParams web standard API provide utilities for parsing and formatting URL query strings into JavaScript key-value objects.
flowchart LR
A["Raw String: 'name=Alex%20Smith&role=dev&skills=js&skills=node'"]
-->|"URLSearchParams / querystring.parse()"| B["JS Object: { name: 'Alex Smith', role: 'dev', skills: ['js', 'node'] }"]
import querystring from 'node:querystring';
const rawQueryString = 'name=John%20Doe&age=30&interests=coding&interests=crypto';
// 1. Modern WHATWG URLSearchParams Approach (Recommended)
const searchParams = new URLSearchParams(rawQueryString);
console.log('Name:', searchParams.get('name')); // 'John Doe'
console.log('All Interests:', searchParams.getAll('interests')); // ['coding', 'crypto']
// 2. Legacy querystring module parsing
const parsedObj = querystring.parse(rawQueryString);
console.log('Parsed Object:', parsedObj);
// 3. Serializing JavaScript Objects into Query Strings
const filterCriteria = {
search: 'Node.js Security',
page: 1,
tags: ['backend', 'tutorial']
};
const encodedQuery = querystring.stringify(filterCriteria);
console.log('Encoded Query String:', encodedQuery);
// 'search=Node.js%20Security&page=1&tags=backend&tags=tutorial'
URLSearchParams Web Standard: The legacy querystring module is considered legacy; use the standard URLSearchParams API for cross-environment compatibility.tag=a&tag=b) resolve into arrays when parsed.Parse the string 'category=books&price_max=50' into a URLSearchParams instance and output the category value.
Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.
Quick Access With