【发布时间】:2014-09-30 17:41:11
【问题描述】:
想知道如何使用 Node.js 向 JSON API 发出 GET 请求。我最好使用 Express,但这不是必需的,并且输出在 Jade 页面上。 我对 Node.js 和整个后端语言仍然是全新的。
【问题讨论】:
想知道如何使用 Node.js 向 JSON API 发出 GET 请求。我最好使用 Express,但这不是必需的,并且输出在 Jade 页面上。 我对 Node.js 和整个后端语言仍然是全新的。
【问题讨论】:
此外,为您带来request 包的人也推出了由bluebird 支持的基于promise 的版本,毫不奇怪,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
});
【讨论】:
我喜欢用请求包:
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);
});
【讨论】:
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.");
【讨论】: