快递在重新加载页面10次后停止工作

我使用快递作为我的networking服务器的节点,一切似乎正常工作。 我唯一的问题是当我重复加载一个特定的页面('/学习'路线)10次。 一旦我这样做,表示似乎停止工作,虽然没有错误logging到控制台,并没有任何错误显示在页面上。 它只是在浏览器中等待主机。 奇怪的是,如果我从带有问题的页面转到另一页面,然后再回来,问题不会发生。 我可以尽可能多地重复这一点,而不会出错。 这是我的路线与问题:

var bcrypt = require('bcrypt'); var pool = require('../database.js').pool; module.exports = function(app) { app.get('/learn', function(req, res, next) { var query = 'SELECT * FROM questions INNER JOIN answers ON questions.questionID = answers.questionID'; pool.getConnection(function(err, connection) { connection.query(query, function(err, rows) { if (err) { throw err; } var data = { name: req.session.name, problems: rows, }; res.render('learn.html', data); }); }); }); app.post('/learn/checkAnswer', function(req, res) { //get posted form data var questionID = req.body.questionID; var selectedAnswer = req.body.selectedAnswer; //query database pool.getConnection(function(err, connection) { var query = connection.query('SELECT correctAnswer FROM questions WHERE questionID = ?', questionID, function(err, rows) { res.send({ correctAnswer: rows[0].correctAnswer }); }); }); }); }; 

我不知道这是否有所作为,但我正在使用handlebars作为我的渲染引擎而不是玉,以及我的数据库node-mysql。

10 是node-mysql池的默认大小 。 而且由于你没有结束使用pool.getConnection检索到的连接,第11个请求将无限期地等待一个空闲的连接。

易于修复:

 connection.query(query, function(err, rows) { connection.end(); // end the connection as soon as possible, // so it's returned to the pool and can be reused. if (err) ... });