djechlin djechlin - 1 year ago 85
Node.js Question

node.js http 'get' request with query string parameters

I have a Node.js application that is an http client (at the moment). So I'm doing:

var query = require('querystring').stringify(propertiesObject);
http.get(url + query, function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);

This seems like a good enough way to accomplish this. However I'm somewhat miffed that I had to do the
url + query
step. This should be encapsulated by a common library, but I don't see this existing in node's
library yet and I'm not sure what standard npm package might accomplish it. Is there a reasonably widely used way that's better?

url.format method saves the work of building own URL. But ideally the request will be higher level than this also.

Answer Source

Check out the request module.

It's more full featured than node's built-in http client.

var request = require('request');

var propertiesObject = { field1:'test1', field2:'test2' };

request({url:url, qs:propertiesObject}, function(err, response, body) {
  if(err) { console.log(err); return; }
  console.log("Get response: " + response.statusCode);