Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 赫罗库';H12和x27;节点JS应用程序的请求超时错误_Javascript_Node.js_Express_Heroku_Ejs - Fatal编程技术网

Javascript 赫罗库';H12和x27;节点JS应用程序的请求超时错误

Javascript 赫罗库';H12和x27;节点JS应用程序的请求超时错误,javascript,node.js,express,heroku,ejs,Javascript,Node.js,Express,Heroku,Ejs,我在Heroku上部署了一个Node js应用程序,当我尝试启动它时,出现错误H12请求超时。不确定我的app.js文件有什么问题。我使用node、express和ejs作为模板。也许我的GET方法有很多问题。对于H12错误的任何帮助,我们将不胜感激 我的代码: const express = require("express"); const ejs = require("ejs"); const ping = require('ping'); const app = express();

我在Heroku上部署了一个Node js应用程序,当我尝试启动它时,出现错误H12请求超时。不确定我的app.js文件有什么问题。我使用node、express和ejs作为模板。也许我的GET方法有很多问题。对于H12错误的任何帮助,我们将不胜感激

我的代码:

const express = require("express");
const ejs = require("ejs");
const ping = require('ping');
const app = express();

app.set('view engine', 'ejs');

app.get("/", function(req, res){
    var Data = [];
    const hosts = [
        '8.8.8.8',
        'nibbler',
        '10.204.2.14',
        'nic-bqnbnntkwq.dynamic-m.com',
        'co-omaha-wired-qqrrbzpgwq.dynamic-m.com',
        'co-austin-cjjbbdqcwq.dynamic-m.com',
        'fctx-wired-vtwpbhcgwq.dynamic-m.com',
        '172.16.10.1',
        'fc-greenwood-dzrrbnzqwq.dynamic-m.com',
        'fcpa-3400-wired-nndkzwnrwq.dynamic-m.com',
        'fcpa-chrome-gwmjjghjwq.dynamic-m.com',
        'fcga-wired-bjkwtcjqwq.dynamic-m.com',
    ];   

    for(var i =0; i<hosts.length; i++){
        ping.promise.probe(hosts[i]).then(function (resp) {

            const destination = ['Azure DC','FC Nevada','Google DNS', 'Austin', 'Omaha', 
            'FC Greenwood', 'FC Georgia', 'FC Pennsylvania 3500', 'FC Pennsylvania 35400', 
            'FC Dallas', 'Nibbler DNS', 'NIC'];

            if(resp.alive){
                const input = {
                    "Destination": "",
                    "Host": resp.host,
                    "Status": "Alive",
                    "Avg": resp.avg
                }
                Data.push(input);
            }
            else {
                const input = {
                    "Destination": "",
                    "Host": resp.host,
                    "Status": "Dead",
                    "Avg": resp.avg
                }
                Data.push(input);
            }
            if(Data.length == 12){
                Data.sort(function(a, b) {
                    var A = a.Host.toUpperCase();
                    var B = b.Host.toUpperCase();
                    return (A < B) ? -1 : (A > B) ? 1 : 0;
                });
                for(var i = 0; i<destination.length; i++){
                    Data[i].Destination = destination[i];
                }
                res.render("home", {data: Data});
            }   
        });
    }
});

app.listen(process.env.PORT || 3000);
const express=require(“express”);
const ejs=要求(“ejs”);
常量ping=需要('ping');
常量app=express();
应用程序集(“查看引擎”、“ejs”);
应用程序获取(“/”,函数(请求,恢复){
var数据=[];
常量主机=[
'8.8.8.8',
“啃食者”,
'10.204.2.14',
“nic bqnbnntkwq.dynamic-m.com”,
“co-omaha wired qqrrbzpgwq.dynamic-m.com”,
“联合奥斯汀cjjbbdqcwq.dynamic-m.com”,
“fctx有线vtwpbhcgwq.dynamic-m.com”,
'172.16.10.1',
“fc greenwood Dzrbnzqwq.dynamic-m.com”,
“fcpa-3400-wired-nndkzwnrwq.dynamic-m.com”,
“fcpa chrome GWMJGHJWQ.dynamic-m.com”,
“fcga wired bjkwtcjqwq.dynamic-m.com”,
];   
对于(VarI=0;Ib)?1:0;
});

对于(var i=0;i而言,H12意味着您的应用程序需要30秒以上的时间才能完成对请求的响应

ping所有这些主机可能需要30秒以上的时间。您是否在开发环境中计时

在heroku上,长时间运行的任务应该在worker dyno上运行。在这种情况下,worker可以定期ping这些主机并将结果写入某种数据存储(redis或postgres)。web应用程序只需从数据存储中提取结果并呈现页面


Heroku在这里有一些很好的文档

H12意味着请求超时。我在本地进行了测试,并在代码
res.render(“home”,{data:data})的和处进行了更改;
res.send({data:data})
服务器用了5秒才发送,这还不是世界末日。我会以这种方式部署应用程序,并尝试检查响应。如果您收到正确的数据而没有出现此超时错误,您应该仔细检查res.render函数。但是我应该如何呈现主ejs文件?我的意思是,它只是为了调试目的s、 尝试一下,如果你能通过heroku从服务中获得一些东西。嗨!你解决了问题吗。我有类似的问题。我的代码在本地工作,但是heroku会给我h12错误。通常当我在本地运行应用程序时,加载页面需要2秒钟。我对node没有太多经验。你能告诉我我我的程序看起来会是什么样子吗他是工人迪诺?