NodeJS和MySQL在第一次查询后出现500错误

时间:2014-11-02 03:58:55

标签: javascript mysql node.js

我已声明mysql,我在app.js中的连接是这样的:

var mysql = require('mysql');
var connection = mysql.createConnection({
    host: '192.168.1.75',
    user: 'dev',
    password: 'devaccount',
    database: 'PugIt'
});

app.set('connection', connection);

User.js注册时,我有:

router.route('/register/steam/finish')
    .get(function(req, res) {
        res.render('user/register_steam');
    })
    .post(function(req, res) {
        var connection = req.app.get('connection');
        connection.connect();

        // Look For Users
        connection.query("SELECT * FROM Users", function(err, rows, fields) {
            console.log('We Found Something!');
        });

        connection.end();
    });

当页面首次加载并且我点击注册时,它工作正常,但是如果我第二次按下按钮我的服务器上出现500错误。

但如果我在每个var connection文件中手动声明route,则不会发生这种情况。

为什么我不能将req.app.get与MySQL一起使用,我曾经使用过这种方法,因为我曾经使用MongoDB,这种方式非常好,我在app.js中有一个主配置我可以改变为如果需要,所有路由文件。不确定为什么我在第二个500

上收到POST错误

1 个答案:

答案 0 :(得分:1)

我认为每个connection.connect()请求上的connection.end()POST都会导致问题。放下这两行,你应该好好去。这样,连接只建立一次,并且所有请求都可以重复使用相同的连接,而无需不断尝试将其拆除并重新启动。

如果您发现自己需要更高的数据库查询并发性,也可以create a pool of mysql connections