在Node.js中向JSON API发出GET请求?

想知道如何使用Node.js对一个JSON API做一个GET请求。 我最好想使用Express,但是这不是必须的,输出在Jade页面上。 对于Node.js和后端语言,我还是一个全新的东西。

var request = require('request'); request('<API Call>', function (error, response, body) { if (!error && response.statusCode == 200) { var info = JSON.parse(body) } }) 

这将向API发出HTTP请求,并在成功将响应parsing为JSON。

至于获得响应到一个Jade页面,你希望做一个API调用(到你自己的服务器),然后使用AngularJS / jQuery /另一个框架来填写信息?

如果你想把它添加到你自己的路线考虑embedded它像这样:

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

我喜欢使用请求包:

 npm install --save request 

和代码:

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

另外,那些带给你request包的人也出现了一个蓝鸟支持的基于promise的版本,这个版本并不令人惊讶地request-promise

请求 – 承诺npm页面

一些人也喜欢超级代理,它可以让你链接命令:

superagent npm页面

以下是他们的文档中的一个例子:

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