从localhost node.js服务器获取外部数据
我是node.js新手,我只想为公共github api获取数据,并在运行node时记录数据。下面是一个非常简单的例子:从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
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);
});