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

NodeJS and MySQL Getting 500 error after first query

本文关键字:Getting 错误 MySQL 第一次 查询 NodeJS      更新时间:2023-09-26

我已经声明了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();
    });

当页面第一次加载并且我点击register时,它工作得很好,但如果我第二次点击按钮,我的服务器上就会出现500错误。

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

为什么我不能将req.app.get与MySQL一起使用,我在使用MongoDB时使用了这种方法,这种方法非常有效。如果需要,我可以在app.js中更改一个主配置,以更改所有路由文件。不确定为什么在第二个POST 上出现500错误

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

如果您发现自己需要更大的数据库查询并发性,也可以创建一个mysql连接池。