我是node.js的新手,我只想做的就是获取公共github api的数据并在运行node时将其记录下来。这是非常简单的示例:
var express = require('express');
var request = require('request');
var app = express();
var PORT = 5001;
request('https://api.github.com/users/someUser**', function (error, response, body) {
console.log(error);
if (!error && response.statusCode == 200) {
console.log(body);
}
});
app.listen(PORT, function() {
console.log('Server is running on PORT:',PORT);
});
然后,我正在运行node program.js
来启动服务器。然后,我总是收到以下错误:
errno: 'ENOTFOUND',
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
我在做事或设置事情上有做错什么吗?我要做的只是从本地服务器获取一些外部数据。任何帮助将不胜感激!
答案 0 :(得分:0)
这是因为需要user-agent
,您可以查看以下link中的文档
因此您应该在请求的标头中传递它,因此代码应如下所示:
var express = require('express');
var request = require('request');
var app = express();
var PORT = 5001;
var options = { method: 'GET',
url: 'https://api.github.com/users/someuser',
headers: { 'User-Agent': 'Awesome-Octocat-App', 'Content-Type': 'application/json' } };
request(options, function (error, response, body) {
console.log(error);
console.log(response.statusCode );
if (!error && response.statusCode == 200)
console.log(body);
});
app.listen(PORT, function() {
console.log('Server is running on PORT:',PORT);
});