想知道如何使用Node.js向JSON API发出GET请求。我最好想使用Express但是没有必要,并且输出是在Jade页面上。 我仍然是Node.js和后端语言的新手。
答案 0 :(得分:15)
var request = require('request');
request('<API Call>', function (error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body)
}
})
这将向API发出HTTP请求,并在成功时将响应解析为JSON。
只要将响应放到Jade页面上,您是否希望进行API调用(到您自己的服务器),然后使用AngularJS / jQuery /另一个框架来填写信息?
如果您希望将此添加到您自己的路线,请考虑将其嵌入:
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.");
答案 1 :(得分:8)
我喜欢使用请求包:
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);
});
答案 2 :(得分:2)
此外,同样为您带来request
软件包的人,已经推出了蓝鸟支持的基于承诺的版本,并不奇怪,request-promise
:
有些人还喜欢超级代理,它允许你链接命令:
以下是他们的文档中的示例:
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
});