首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对Mysql数据库执行第二次q1wery时出错

对Mysql数据库执行第二次q1wery时出错
EN

Stack Overflow用户
提问于 2018-06-10 21:53:40
回答 1查看 163关注 0票数 0

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

代码语言:javascript
复制
    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抛出er;//未处理的'error‘事件^

代码语言:javascript
复制
Error: Cannot enqueue Handshake after invoking quit.
    at Protocol._validateEnqueue (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:204:16)
    at Protocol._enqueue (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:139:13)
    at Protocol.handshake (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:52:23)
    at Connection.connect (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\Connection.js:118:18)
    at E:\Dropbox\untitled5-upload-3\untitled5\app.js:48:16
    at Layer.handle [as handle_request] (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\layer.js:95:5)
    at next (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\layer.js:95:5)
    at E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\index.js:281:22
Emitted 'error' event at:
    at Connection._handleProtocolError (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\Connection.js:425:8)
    at Protocol.emit (events.js:180:13)
    at Protocol._delegateError (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:392:10)
    at Handshake.<anonymous> (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:221:10)
    at Handshake.emit (events.js:180:13)
    at Handshake.Sequence.end (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:12)
    at E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:225:14
    at process._tickCallback (internal/process/next_tick.js:112:11)
EN

回答 1

Stack Overflow用户

发布于 2018-06-11 01:10:18

将通过项添加到视图是一种简单方法。

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

https://stackoverflow.com/questions/50784409

复制
相关文章

相似问题

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