Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Parsing Query String in node.js

In this "Hello World" example:

// Load the http module to create an http server. var http = require('http');  // Configure our HTTP server to respond with Hello World to all requests. var server = http.createServer(function (request, response) {   response.writeHead(200, {"Content-Type": "text/plain"});   response.end("Hello World\n"); });  // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(8000);  // Put a friendly message on the terminal console.log("Server running at http://127.0.0.1:8000/"); 

How can I get the parameters from the query string?

http://127.0.0.1:8000/status?name=ryan 

In the documentation, they mentioned:

node> require('url').parse('/status?name=ryan', true) { href: '/status?name=ryan' , search: '?name=ryan' , query: { name: 'ryan' } , pathname: '/status' } 

But I did not understand how to use it. Could anyone explain?

like image 946
L N Avatar asked Dec 21 '11 12:12

L N


People also ask

How do I parse a query string in node JS?

To parse query string in Node. js, we can use the url module. const http = require('http'); const url = require('url'); const server = http. createServer((request, response) => { const { query: queryData } = url.

What is parse query string?

The ParseQueryString method uses UTF8 format to parse the query string In the returned NameValueCollection, URL-encoded characters are decoded and multiple occurrences of the same query string parameter are listed as a single entry with a comma separating each value.

Which module is used to parse the query string in node JS?

The node:querystring module provides utilities for parsing and formatting URL query strings. It can be accessed using: const querystring = require('node:querystring');

What is query string in node JS?

The Node. js Query String provides methods to deal with query string. It can be used to convert query string into JSON object and vice-versa. To use query string module, you need to use require('querystring').


1 Answers

You can use the parse method from the URL module in the request callback.

var http = require('http'); var url = require('url');  // Configure our HTTP server to respond with Hello World to all requests. var server = http.createServer(function (request, response) {   var queryData = url.parse(request.url, true).query;   response.writeHead(200, {"Content-Type": "text/plain"});    if (queryData.name) {     // user told us their name in the GET request, ex: http://host:8000/?name=Tom     response.end('Hello ' + queryData.name + '\n');    } else {     response.end("Hello World\n");   } });  // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(8000); 

I suggest you read the HTTP module documentation to get an idea of what you get in the createServer callback. You should also take a look at sites like http://howtonode.org/ and checkout the Express framework to get started with Node faster.

like image 196
juandopazo Avatar answered Sep 26 '22 19:09

juandopazo