使用node.js和我的sql在网页上打印用户行

时间:2017-05-22 13:57:41

标签: node.js

如果用户在某些行上使用node.js和我的sql具有某个值,那么我正在编写一个代码来在网页上打印用户电子邮件行

所以我创建了这段代码 当我在console.log上运行它时,我得到了正确的值 但是当我试着用它时 res.send(); 我收到此错误

Error: Can't set headers after they are sent.

并且只获得一行而不是所有用户行

我试着在res.send之后写回车 那我只能给我一行如何在网页上获得所有行?

app.get('/usersrooms', function (req, res, next) {
    var userslist = "SELECT * FROM users ORDER BY id";    
    var query = connection.query(userslist, function(err,rows, result) {

    if (rows.length > 0) {
        for (var i in rows) {


            if (rows[i].onmatch == 0){
                //console.log("the mails",rows[i].email);

                res.send('hello',rows[i].email)

            }


        }
    }

    })

});

1 个答案:

答案 0 :(得分:1)

你得到的error因为,即使在循环完成之前发送了响应,

解决方案是:

获取数组 rows_array = []

将电子邮件从循环中推送到该数组中,

<强> rows_array.push(rows[i].email)

循环完成后,将该数组作为响应发送,

<强> res.send('hello',rows_array)

app.get('/usersrooms', function (req, res, next) {
    var userslist = "SELECT * FROM users ORDER BY id";    
    var query = connection.query(userslist, function(err,rows, result) {

    if (rows.length > 0) {
        var rows_array = []
        for (var i in rows) {


            if (rows[i].onmatch == 0){
                //console.log("the mails",rows[i].email);
                rows_array.push(rows[i].email)


            }


        }
        res.send('hello',rows_array)
    }

    })

});