【发布时间】:2015-07-05 22:34:10
【问题描述】:
我正在使用 express.js,我需要调用 HTTP GET 请求以获取 JSON 数据。请建议我一些好的节点 js/express js 模块/lib 来执行 get/post 请求。
【问题讨论】:
标签: javascript node.js express
我正在使用 express.js,我需要调用 HTTP GET 请求以获取 JSON 数据。请建议我一些好的节点 js/express js 模块/lib 来执行 get/post 请求。
【问题讨论】:
标签: javascript node.js express
Node.js 以 http.request 的形式为此功能提供了一个极其简单的 API。
var http = require('http');
//The url we want is: 'www.random.com/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new'
var options = {
host: 'www.random.com',
path: '/integers/?num=1&min=1&max=10&col=1&base=10&format=plain&rnd=new'
};
callback = function(response) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
response.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
response.on('end', function () {
console.log(str);
});
}
http.request(options, callback).end();
Here 我附上了更多带有 POST 和自定义标头的示例。如果您不需要特殊的东西,我会坚持使用本机代码。
此外,Request、Superagent 或 Requestify 是非常不错的库。
【讨论】:
var express = require('express');
var app = express();
var fs = require('fs');
app.get('/', function (req, res) {
fs.readFile('./test.json', 'utf8', function (err, data) {
if (err) {
res.send({error: err});
}
res.send(data);
})
});
var server = app.listen(3001, function () {
console.log('Example app listening port 3001');
});
【讨论】: