Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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/express:服务器在开始运行一段时间后挂起_Javascript_Node.js_Reactjs_Express_Webpack - Fatal编程技术网

Javascript NodeJS/express:服务器在开始运行一段时间后挂起

Javascript NodeJS/express:服务器在开始运行一段时间后挂起,javascript,node.js,reactjs,express,webpack,Javascript,Node.js,Reactjs,Express,Webpack,我用express和webpack提供了我的服务,一开始效果很好。奇怪的是,一段时间后服务(服务器)将挂起。如屏幕截图所示,未收到任何消息代码。 这种情况一再发生 我的app.js var express=require('express'); var path=require('path'); var favicon=要求('serve-favicon'); var记录器=需要('morgan'); var cookieParser=require('cookie-parser'); var

我用express和webpack提供了我的服务,一开始效果很好。奇怪的是,一段时间后服务(服务器)将挂起。如屏幕截图所示,未收到任何消息代码。 这种情况一再发生

我的app.js

var express=require('express');
var path=require('path');
var favicon=要求('serve-favicon');
var记录器=需要('morgan');
var cookieParser=require('cookie-parser');
var bodyParser=require('body-parser');
风险值指数=要求('./路线/指数');
var users=require(“./routes/users”);
var-app=express();
var mysql=require('mysql');
var generals=需求('./路线/将军');
//查看引擎设置
app.set('views',path.join('views');
应用程序集(“查看引擎”、“翡翠”);
应用程序使用(记录器(“开发”);
use(bodyParser.json());
use(bodyParser.urlencoded({extended:false}));
使用(cookieParser());
应用程序使用('/generals',generals);
app.use(express.static(path.join(uu dirname,'public'));
应用程序使用(“/”,索引);
应用程序使用('/users',users);
//捕获404并转发到错误处理程序
应用程序使用(功能(请求、恢复、下一步){
var err=新错误(“未找到”);
err.status=404;
下一个(错误);
});
//错误处理程序
应用程序使用(功能(错误、请求、恢复、下一步){
//设置局部变量,仅提供开发中的错误
res.locals.message=err.message;
res.locals.error=req.app.get('env')='development'?err:{};
//呈现错误页面
资源状态(资源状态| | 500);
res.render(“错误”);
});

module.exports=app使用
pool.getConnection()
时,连接完成(即查询完成)后,需要再次释放回池的连接:

pool.getConnection(function(err, connection) {
    connection.query("select * from drop_down_value order by id desc", function(err, rows) {

        connection.release(); // <- this

        if (!err && rows.length > 0) {
            res.json(rows);
        } else {
            res.json([]);
        }
    });
});
pool.getConnection(函数(err,connection){
connection.query(“按id desc从下拉列表中选择*值顺序”),函数(err,rows){
connection.release();//0){
res.json(行);
}否则{
res.json([]);
}
});
});

否则,一旦执行了10次查询,池中就不再有可用的连接,它将开始(无限期地)等待释放连接,从而挂起请求。

添加对未处理拒绝(用于承诺)和未捕获异常(用于尝试捕获)的支持在您的代码中,告诉我们当服务器挂起时,您的日志中是否有新的内容不是问题(它明确告诉您的浏览器文件的缓存版本仍然是最新的),而是对
/generals/dropDownValue
的请求开始失败。我们不知道为什么,因为您没有显示其代码。另外,
不是全局池,与注释中的状态相反。@robertklep我已更新了代码并删除了全局池。