首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新加载页面10次后,Express停止工作

重新加载页面10次后,Express停止工作
EN

Stack Overflow用户
提问于 2013-06-02 14:49:15
回答 1查看 472关注 0票数 3

我使用express作为节点的and服务器,一切似乎都正常工作。我遇到的唯一问题是,当我重复加载特定页面('/learn‘路由) 10次时。一旦我这样做了,express似乎停止了工作,尽管控制台上没有记录错误,页面上也没有显示任何错误。它只是一直在浏览器中等待主机。奇怪的是,如果我从有问题的页面转到另一个页面,然后再返回,问题就不会发生。我可以想重复多少就重复多少,不会出错。以下是我的解决问题的路线:

代码语言:javascript
复制
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作为我的渲染引擎,而不是jade,并且使用node-mysql作为我的数据库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-02 14:56:18

10 is the default size of the node-mysql pool。由于您不会结束使用pool.getConnection检索的连接,因此第11个请求将无限期地等待空闲连接。

易于修复:

代码语言:javascript
复制
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) ...
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16880475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档