Javascript NodeJS/express:服务器在开始运行一段时间后挂起
我用express和webpack提供了我的服务,一开始效果很好。奇怪的是,一段时间后服务(服务器)将挂起。如屏幕截图所示,未收到任何消息代码。 这种情况一再发生 我的app.jsJavascript 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
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我已更新了代码并删除了全局池。