Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get a JSON via HTTP request in NodeJS

Here is my model with a JSON response:

exports.getUser = function(req, res, callback) {     User.find(req.body, function (err, data) {         if (err) {             res.json(err.errors);         } else {             res.json(data);         }    }); }; 

Here I get it via http.request. Why do I receive (data) a string and not a JSON?

 var options = {   hostname: '127.0.0.1'   ,port: app.get('port')   ,path: '/users'   ,method: 'GET'   ,headers: { 'Content-Type': 'application/json' } };  var req = http.request(options, function(res) {   res.setEncoding('utf8');   res.on('data', function (data) {        console.log(data); // I can't parse it because, it's a string. why?   }); }); reqA.on('error', function(e) {   console.log('problem with request: ' + e.message); }); reqA.end(); 

How can I get a JSON?

like image 610
Sasha Grey Avatar asked Jul 23 '13 13:07

Sasha Grey


1 Answers

http sends/receives data as strings... this is just the way things are. You are looking to parse the string as json.

var jsonObject = JSON.parse(data); 

How to parse JSON using Node.js?

like image 189
ChrisCM Avatar answered Sep 17 '22 00:09

ChrisCM