Make a GET request to JSON API in Node.js?

跟風遠走 提交于 2019-12-04 08:37:41

问题


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.


回答1:


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.");



回答2:


I like to use the request package:

npm install --save request

And the code:

var request = require('request');

request({url: 'http://yourapi.com/', json: true}, function(err, res, json) {
  if (err) {
    throw err;
  }
  console.log(json);
});



回答3:


Also, the same people who brought you the request package, have come out with a promise based version backed by bluebird called, not surprisingly, request-promise:

request-promise npm page

Some folks also prefer super agent, which allows you to chain commands:

superagent npm page

Here's an example from their docs:

request
  .post('http://localhost:3000/api/pet')
  .send({ name: 'Manny', species: 'cat' })
  .set('X-API-Key', 'foobar')
  .set('Accept', 'application/json')
  .end(function(err, res){
    // Calling the end function will send the request 
  });


来源:https://stackoverflow.com/questions/25183228/make-a-get-request-to-json-api-in-node-js

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!