node.jshttpquery-string

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 http 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.


Solution

  • 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);
    });