I'm trying to create function that can parse JSON from a url. Here's what I have so far:
function get_json(url) {
http.get(url, function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
var response = JSON.parse(body);
return response;
});
});
}
var mydata = get_json(...)
When I call this function I get errors. How can I return parsed JSON from this function?
Your return response;
won't be of any use. You can pass a function as an argument to get_json
, and have it receive the result. Then in place of return response;
, invoke the function. So if the parameter is named callback
, you'd do callback(response);
.
// ----receive function----v
function get_json(url, callback) {
http.get(url, function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
var response = JSON.parse(body);
// call function ----v
callback(response);
});
});
}
// -----------the url---v ------------the callback---v
var mydata = get_json("http://webapp.armadealo.com/home.json", function (resp) {
console.log(resp);
});
Passing functions around as callbacks is essential to understand when using NodeJS.