Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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/2/node.js/35.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 NodeJS请求模块在6个ajax请求后停止工作_Javascript_Node.js_Ajax - Fatal编程技术网

Javascript NodeJS请求模块在6个ajax请求后停止工作

Javascript NodeJS请求模块在6个ajax请求后停止工作,javascript,node.js,ajax,Javascript,Node.js,Ajax,我有一个节点内的rest api函数,它接收id为的ajax调用,以重新启动url链接…当我调用这个ajax函数5次时,它就工作了…在调用6次之后,它就不工作了..使用console.log,我看到该行在获取请求时停止,如果我再次调用它,我会得到相同的日志…从url获取请求(url有效)…因此,我发现请求模块甚至没有返回任何错误或请求响应代码…以下是我的代码: apiRoutes.post('/restart_stream', function(req, res) { /* GET - toke

我有一个节点内的rest api函数,它接收id为的ajax调用,以重新启动url链接…当我调用这个ajax函数5次时,它就工作了…在调用6次之后,它就不工作了..使用console.log,我看到该行在获取请求时停止,如果我再次调用它,我会得到相同的日志…从url获取请求(url有效)…因此,我发现请求模块甚至没有返回任何错误或请求响应代码…以下是我的代码:

apiRoutes.post('/restart_stream', function(req, res) {
/* GET - token */
var token = req.headers['x-access-token'];
    token = decrypt(token);
    console.log('called.../restart_stream');

/* GET - data id */
var data     = {};
data.id      = req.body.id;
data.type    = req.body.type;

    /* GET - connection */
    pool.getConnection(function(err,connection){
        if (err) {
            connection.release();
            res.json({"code" : 100, "status" : "Error in connection database"});
            return;
        }

        /* GET - stream url */
        connection.query("SELECT id, channel, JSON_UNQUOTE(json_extract(stream, '$[0]')) AS stream_url FROM streams WHERE id=?", [data.id],function(err, rows, fields){
       console.log('getting request to...'+rows[0].stream_url);
            /* GET - stream status */
            var r = request
                .get(rows[0].stream_url)
                .on('response', function(response) {
                    console.log('resoponse received....'+response.statusCode);
                    /* CHECK - stream exists */
                    if (response.statusCode != 200 && response.statusCode != 302) {
                        r.end();
                        /* RESET - live&streams info */
                        res.json({"status": "false", "message": "FAILED to Restart <b>"+rows[0].channel+"</b>!"});
                    } else {
                        /* RESET - live&streams info */
                        connection.query("UPDATE streams SET uptime=?, status=? WHERE id=?",['0', '1', data.id], function(err) {
                            /* CHECK - error */
                            if (err) {
                                res.json({"status": "false", "message": err.message});
                            } else {
                                /* STOP - url my code here that is not executed after 6 ajax call */


                                r.end();

                                res.json({"status": "true", "message": "RESTARTED Successfully!"});
                            };
                        });
                    };
                })
        });
    });
} else {
    res.json({"status": "false", "message": "FAILED"});
};
});

我今天成功地解决了这个问题…问题是我使用了旧版本的NodeJS(v0.10.25)现在升级到v7.10.0,一切正常,我做了100个请求,效果很好…我以前有一个巨大的加载页面…所以新版本的node js带来了巨大的性能提升…

我不知道这是否是问题所在,但你不能在每个代码路径上调用
r.end
,例如,如果发生错误。顺便说一下,这是一个完美的“毁灭金字塔”的例子,我会考虑重新构造这个程序。你有什么提示或理论,我需要如何重构程序?你也不总是释放数据库连接,因此,在某个时刻,池将没有可用的连接,并将开始等待释放连接;但问题与我在console.log中得到的请求相同。。。所以问题是请求模块停止工作了
https://www.npmjs.com/package/request