Skip to content
-
Node.js Query String
Last Updated :
12 Aug, 2024
The Query String module used to provides utilities for parsing and formatting URL query strings. It can be used to convert query string into JSON object and vice-versa.
Node.js Query String
Query strings in Node.js are a common way to pass data to a server via a URL. A query string is the part of a URL that comes after a "?" symbol and contains key-value pairs separated by &. These strings are used in HTTP requests to send additional parameters to the server.
The Query String is the part of the URL that starts after the question mark(?).
Importing Module:
You can include the module using the following code:
const querystring = require('querystring');
Note: It’s not a global object, so need to install it explicitly.
Install Module:
npm install querystring
Example 1: Using parse()
JavaScript
// Filename - index.js
// Importing the models
import url from 'url'
import querystring from 'querystring'
// A URL is taken
let exampleUrl =
'http://www.company.com:81/a/b/c.html?user=GEEKSFORGEEKS&year=2021#p2';
//Parse the whole URL
let parsed_Url = url.parse(exampleUrl);
// Parse only querystring.
let parsed_queryString = querystring.parse(parsed_Url.query);
// Print the result.
console.log("This is parsed URL :",parsed_Url);
console.log("This is parsed Query String :",parsed_queryString);
Output:
This is parsed URL : Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.company.com:81',
port: '81',
hostname: 'www.company.com',
hash: '#p2',
search: '?user=GEEKSFORGEEKS&year=2021',
query: 'user=GEEKSFORGEEKS&year=2021',
pathname: '/a/b/c.html',
path: '/a/b/c.html?user=GEEKSFORGEEKS&year=2021',
href:
'http://www.company.com:81/a/b/c.html?user=GEEKSFORGEEKS&year=2021#p2'
}
This is parsed Query String : [Object: null prototype]
{ user: 'GEEKSFORGEEKS', year: '2021' }
Example 2: Using stringify():
JavaScript
// Importing the model
import querystring from 'querystring'
// Specify the object
// to be serialized
const q2=querystring.stringify({
name:'Testing',
company:'GeeksforGeeks',
content:'Article',
date:'9thMarch2021'
});
// Print the result.
console.log(q2);
Output:
name=Testing&company=GeeksforGeeks&
content=Article&date=9thMarch2021
Benefits
- Query strings provide a simple way to pass small amounts of data to the server without needing to modify the URL or body of the request.
- Query strings allow search engines to index pages with specific parameters, improving SEO.
- Query strings are often used in combination with HTML forms, where form data is submitted via the URL.
Summary
The querystring module is essential for managing query strings in Node.js applications. It provides straightforward methods for parsing and formatting query strings, making it easier to handle URL parameters in web development.
Reference: https://nodejs.org/api/querystring.html
`;
$(commentSectionTemplate).insertBefore(".article--recommended");
}
loadComments();
});
});
function loadComments() {
if ($("iframe[id*='discuss-iframe']").length top_of_element && top_of_screen articleRecommendedTop && top_of_screen articleRecommendedBottom)) {
if (!isfollowingApiCall) {
isfollowingApiCall = true;
setTimeout(function(){
if (loginData && loginData.isLoggedIn) {
if (loginData.userName !== $('#followAuthor').val()) {
is_following();
} else {
$('.profileCard-profile-picture').css('background-color', '#E7E7E7');
}
} else {
$('.follow-btn').removeClass('hideIt');
}
}, 3000);
}
}
});
}
$(".accordion-header").click(function() {
var arrowIcon = $(this).find('.bottom-arrow-icon');
arrowIcon.toggleClass('rotate180');
});
});
window.isReportArticle = false;
function report_article(){
if (!loginData || !loginData.isLoggedIn) {
const loginModalButton = $('.login-modal-btn')
if (loginModalButton.length) {
loginModalButton.click();
}
return;
}
if(!window.isReportArticle){
//to add loader
$('.report-loader').addClass('spinner');
jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', {
PRACTICE_API_URL: practiceAPIURL,
PRACTICE_URL:practiceURL
},function(responseTxt, statusTxt, xhr){
if(statusTxt == "error"){
alert("Error: " + xhr.status + ": " + xhr.statusText);
}
});
}else{
window.scrollTo({ top: 0, behavior: 'smooth' });
$("#report_modal_content").show();
}
}
function closeShareModal() {
const shareOption = document.querySelector('[data-gfg-action="share-article"]');
shareOption.classList.remove("hover_share_menu");
let shareModal = document.querySelector(".hover__share-modal-container");
shareModal && shareModal.remove();
}
function openShareModal() {
closeShareModal(); // Remove existing modal if any
let shareModal = document.querySelector(".three_dot_dropdown_share");
shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" }));
document.querySelector(".hover__share-modal-container").append(
Object.assign(document.createElement('div'), { className: "share__modal" }),
);
document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" }));
const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"];
socialOptions.forEach((socialOption) => {
const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" });
const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` });
const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` });
const shareLink = (socialOption === "Copy Link") ?
Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) :
Object.assign(document.createElement('a'), { className: "link-container" });
if (socialOption === "LinkedIn") {
shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`);
shareLink.setAttribute('target', '_blank');
}
if (socialOption === "WhatsApp") {
shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`);
shareLink.setAttribute('target', "_blank");
}
if (socialOption === "Twitter") {
shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`);
shareLink.setAttribute('target', "_blank");
}
shareLink.append(icon, socialText);
socialContainer.append(shareLink);
document.querySelector(".share__modal").appendChild(socialContainer);
//adding copy url functionality
if(socialOption === "Copy Link") {
shareLink.addEventListener("click", function() {
var tempInput = document.createElement("input");
tempInput.value = window.location.href;
document.body.appendChild(tempInput);
tempInput.select();
tempInput.setSelectionRange(0, 99999); // For mobile devices
document.execCommand('copy');
document.body.removeChild(tempInput);
this.querySelector(".share__option-text").textContent = "Copied"
})
}
});
// document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu"));
}
function toggleLikeElementVisibility(selector, show) {
document.querySelector(`.${selector}`).style.display = show ? "block" : "none";
}
function closeKebabMenu(){
document.getElementById("myDropdown").classList.toggle("show");
}