我正在尝试从端口1717获取页面,但是当我的带宽不可用时,错误回调中的http.get记录错误ENOENT,而当我重新打开带宽时,它会记录错误ECONNRESET。无论我的计算机是否处于脱机状态,只要服务器启动并运行,网址http://localhost:1717/admin/available/始终会在浏览器中返回内容。我尝试过使用postman,我也尝试使用http模块的request
方法而不是get
。我使用它后end
ed请求但我仍然遇到相同的错误。
与此同时,我尝试获取除localhost之外的其他链接并获取它们。在其他一些主题中,我看到人们建议我使用主机名127.0.0.1而不是localhost。这也没有用,所以我从npm切换到请求模块,然后行为略有不同。在server.js中,对于GET请求点击/ admin / available /
,我有类似的东西 console.log('giving you table', table)
res.writeHead(200, {"Content-Type": "text/html"});
res.end(table);
但是,当我使用请求模块时,它会抛出错误ECONNRESET,但是在运行服务器的CLI窗口中,会记录此console.log('giving you table', table)
,这意味着服务器确实看到了该请求,但不知何故,该模块仍然存在抛出ECONNRESET并且主体和响应变量未定义,声称它无法看到它。我该怎么办?
我将在下面发布我的代码,以防我遗漏了什么。
var http = require('http'),
component = require('../lib/render-component'),
render = {username: '', available: '', orders: '', frequent: ''};
// for simplicity
var request = require('request');
request('http://localhost:1717/admin/available', function(err, res, body) {
console.log(err, res, body)
});
// intended use scenario
http.get({port: 1717, path: '/admin/available/', headers: {Accept: 'text/html'}}, function(res) {
var temp = '';
res.setEncoding('utf8');
console.log('inside get');
res.on('data', function (chunk) {
temp += chunk;
}).on('end', function() {
render.available = temp;
http.get('http://localhost:1717/admin/order/?page=0', function(res) {
var temp = ''
res.setEncoding('utf8');
res.on('data', function (chunk) {
temp += chunk;
}).on('end', function() {
render.orders = temp;
ordersModel.find({status: 'delivered'}, 'food', function (err, orders) {
if (err) throw err;
var hashMap = [], returnArr = [];
orders.forEach(function (order) {
hashMap.push(order.toObject()['food'].split(","));
})
hashMap.reduce(function(a, b) {
return a.concat(b)
}, []).forEach(function(item) {
if ((k = returnArr.findIndex(function(elem) {
return elem[0] == item;
})) != -1) {
returnArr[k][1]++;
}
else returnArr.push([item, 1]);
})
// filter the ones with the highest value
hashMap = [], returnArr = returnArr.sort(function(a, b) {
return b[1] - a[1];
}).slice(0, 5).forEach(function(elem) {
hashMap.push({name: elem[0], counter: elem[1]})
});
render.frequent = component("frequent", hashMap);
console.log(render)
}) // orders model find
}); // get orders
}).on('error', function(e) {
console.log(e)
});
}); // available on end
}).on('error', function(e) {
console.log('err available', e)
}); // available on error
请帮帮我。我已经被困了三天了。