Wondering how I can make a GET request to a JSON API using Node.js. I preferably want to use Express however it is not necessary, and for the output to be on a Jade page. I'm still completely new to Node.js and backend languages as a whole.
var request = require('request');
request('<API Call>', function (error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body)
}
})
This will make an HTTP request to the API and upon success parse the response into JSON.
As far as getting the response onto a Jade page do you wish to do an API call (to your own server) and then use AngularJS/ jQuery/ another framework to fill in the information?
If you wish to add this to your own route consider embedding it like such:
var express = require('express');
var cors = require('cors');
var request = require('request');
var app = express();
app.use(express.bodyParser());
app.use(cors());
app.get('<Your Route>', function(req, res){
request('<API Call>', function (error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body)
// do more stuff
res.send(info);
}
})
});
app.listen(3000);
console.log("The server is now running on port 3000.");
I like to use the request package:
npm install --save request
And the code:
var request('request');
request({url: 'http://yourapi.com/', json: true}, function(err, res, json) {
if (err) {
throw err;
}
console.log(json);
});