从localhost node.js服务器获取外部数据

从localhost node.js服务器获取外部数据,node.js,express,Node.js,Express,我是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, bo

我是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',

在我做事或安排事情的过程中,是否有什么地方我做错了?我只想从本地主机服务器获取一些外部数据。任何帮助都将不胜感激

这是因为需要
用户代理
。您可以查看以下文档 因此,您应该在请求的标题中传递它,因此代码应该如下所示:

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