第二次访问Mysql数据库时出错

第二次访问Mysql数据库时出错,mysql,node.js,express,Mysql,Node.js,Express,当我启动服务器后发送第一个请求时,一切正常。 但在更新页面(重新查询)后,您会收到一个错误: app.get('/images', function(req, res, next) { if (connection.state === 'disconnected'){ connection.connect();} else { } var DATABASE='nodejsImage'; var resu

当我启动服务器后发送第一个请求时,一切正常。 但在更新页面(重新查询)后,您会收到一个错误:

    app.get('/images', function(req, res, next) {

 if (connection.state === 'disconnected'){
    connection.connect();}
        else {

    }
            var DATABASE='nodejsImage';
            var results;
            connection.query('use ' + DATABASE);
            connection.query('SELECT `id`, `imagename`, `filename`, `speed`, `move` FROM `images` WHERE 1',
                function (err, results, fields) {
                    if (err) return console.log("Error test")  //throw err;
                    else {
                        console.log('Images list');
                        console.log('----------------------------------');
                        for (var i in results) {
                            var gadget = results[i];
                            console.log(gadget.id +': '+ gadget.imagename+': '+gadget.speed+': '+gadget.move);

                        }
                        res.render('imagelist', { title: 'Imagelist',listImages:results });
                    }
                });

            connection.end();           //разобраться с ошибкой позже!!!
        });
错误消息:

events.js:165 投掷者;//未处理的“错误”事件 ^

错误:调用quit后无法将握手排队。
at Protocol.\u validateEnqueue(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\Protocol\Protocol.js:204:16)
at Protocol.\u排队(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\Protocol\Protocol.js:139:13)
在Protocol.handshake(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\Protocol\Protocol.js:52:23)
在Connection.connect(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\Connection.js:118:18)
在E:\Dropbox\untitled5-upload-3\untitled5\app.js:48:16
在Layer.handle[作为handle\u请求](E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\express\lib\router\Layer.js:95:5)
下一步(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\express\lib\router\route.js:137:13)
在Route.dispatch(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\express\lib\router\Route.js:112:3)
在Layer.handle[作为handle\u请求](E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\express\lib\router\Layer.js:95:5)
在E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\express\lib\router\index.js:281:22
在以下位置发出“错误”事件:
连接时。\u handleprotocolorr(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\Connection.js:425:8)
在Protocol.emit(events.js:180:13)
at Protocol.\u delegateError(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\Protocol\Protocol.js:392:10)
握手时。(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\protocol\protocol.js:221:10)
在Handshake.emit(events.js:180:13)
在Handshake.Sequence.end(E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\protocol\sequences\Sequence.js:83:12)
在E:\Dropbox\untitled5-upload-3\untitled5\node\u modules\mysql\lib\protocol\protocol.js:225:14
在进程中。_tick回调(内部/process/next_tick.js:112:11)

添加通行证项目很简单 查看

   var imageList = [];

        // Connect to MySQL database.
        var connection = getMySQLConnection();
        connection.connect();

        // Do the query to get data.
        connection.query('SELECT * FROM images', function(err, rows, fields) {
            if (err) {
                res.status(500).json({"status_code": 500,"status_message": "internal server error"});
            } else {
                // Loop check on each row
                for (var i = 0; i < rows.length; i++) {

                    // Create an object to save current row's data
                    var person = {
                        'id':rows[i].id,
                        'imagename':rows[i].imagename,
                        'filename':rows[i].filename,
                        'speed':rows[i].speed,
                        'move':rows[i].move
                    }
                    // Add object into array
                    imageList.push(person);
                }

                // Render index.pug page using array
                res.render('imagelist', { title: 'Imagelist',listImages:imageList });
            }
        });

        // Close the MySQL connection
        connection.end();
var-imageList=[];
//连接到MySQL数据库。
var connection=getMySQLConnection();
connection.connect();
//执行查询以获取数据。
connection.query('SELECT*FROM images',函数(err、行、字段){
如果(错误){
json({“状态代码”:500,“状态消息”:“内部服务器错误”});
}否则{
//每行循环检查
对于(变量i=0;i
您收到一个错误
。。。出现了什么错误?为什么使用
WHERE
子句?我更新了问题。您似乎没有等待
connection.connect()
事件完成。它可能是异步的,因此您可能需要使用回调来执行某些操作,或者等待承诺来检查示例代码中的第一个if/else。为什么其他的都是空的?这就是你的意图吗?
   var imageList = [];

        // Connect to MySQL database.
        var connection = getMySQLConnection();
        connection.connect();

        // Do the query to get data.
        connection.query('SELECT * FROM images', function(err, rows, fields) {
            if (err) {
                res.status(500).json({"status_code": 500,"status_message": "internal server error"});
            } else {
                // Loop check on each row
                for (var i = 0; i < rows.length; i++) {

                    // Create an object to save current row's data
                    var person = {
                        'id':rows[i].id,
                        'imagename':rows[i].imagename,
                        'filename':rows[i].filename,
                        'speed':rows[i].speed,
                        'move':rows[i].move
                    }
                    // Add object into array
                    imageList.push(person);
                }

                // Render index.pug page using array
                res.render('imagelist', { title: 'Imagelist',listImages:imageList });
            }
        });

        // Close the MySQL connection
        connection.end();