在这段代码中,我想创建一个下载维基百科页面的请求对象。
这就是我尝试这样做的方式:
var https = require('https');
var fs = require('fs');
var options = {
hostname: 'en.wikipedia.org/',
port: 443,
path: '/wiki/George_Washington'
};
var req = https.request(options, function(res) {
var responseBody = "";
res.setEncoding("UTF-8");
res.on('data', function(chunk) {
responseBody += chunk;
});
res.on('end', function() {
fs.writeFile('wikipedia.md', responseBody, function(err) {
if(err) {
throw err;
}
});
});
});
req.on('error', function(err) {
if(err) {
console.log('Problem with request ', err);
}
});
req.end();
但是我收到了以下错误:
Problem with request { [Error: getaddrinfo ENOTFOUND en.wikipedia.org/ en.wikipedia.org/:443]
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'en.wikipedia.org/',
host: 'en.wikipedia.org/',
port: 443 }
可能是我的端口号错了吗?或者我的路线有问题?
答案 0 :(得分:1)
您的主机名:
hostname: 'en.wikipedia.org/',
包含一个尾部斜杠。删除它:
hostname: 'en.wikipedia.org',
并且您的代码运行正常。