我如何http.get localhost

时间:2017-04-11 09:51:26

标签: node.js request localhost

我正在尝试从端口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 

请帮帮我。我已经被困了三天了。

0 个答案:

没有答案