javascript - 将node-mysql结果行合并为node.js的单个JSON返回

标签 javascript mysql node.js callback node-mysql

我想知道返回一堆 JSON 的最佳方法,这些 JSON 是一些相关 mysql 查询的结果。

app.get('/viewing/:id', function (req, res){
    if(!req.cookies.user) {
        res.end('Requires Authenticated User');
    } else {   
        connection.query('SELECT blah blah where userId='+req.params.id,
        function (error, rows, fields) {

现在我们有一堆行——假设有 5 行。我需要遍历每一行并根据我刚刚获得的数据进行另一个 mysql 查询。所以我最终需要重复调​​用(我要循环吗?)

            connection.query('SELECT id, firstName, lastName from users where id='+AN_ID_FROM_PRIOR_QUERY,
            function (error2, rows2, fields2) {

             });
           }
        }

如何将第二个查询的每个重复选择中的行合并到可以以 JSON 形式返回的单个对象中?

            res.writeHead(200, {'Content-Type': 'text/plain'});
            res.end(JSON.stringify(results));
            }
        });
    }
});

最佳答案

询问并回答。

Async.js 实用程序有很多好东西,包括 map functionunderscores.js帮助整理一切!

app.get('/viewing/:id', function (req, res){
  if(!req.cookies.user) {
      res.end('Requires Authenticated User');
  }
  else {
     connection.query('SELECT something,somethingelse from mytable where userId = ?',[req.params.id], function (error, rows, fields) {
        async.map(rows, getUsers, function(err, results){
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end(JSON.stringify(_.flatten(_.compact(results))));
         });
     });
  }
});

function getUsers(user, callback) {
    connection.query('SELECT id,firstName,lastName FROM users WHERE id = '+ user.otherId,  function(err, info) {
        if(err) {
            console.log(err);
            return callback(err);
        }
        else {
           return callback(null, info);
        }
    });

}

关于javascript - 将node-mysql结果行合并为node.js的单个JSON返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913916/

相关文章:

javascript - CORS BLOCKED 'Access-Control-Allow-Origin' Firebase 功能不允许

javascript - angular2获取自定义属性的值

mysql - 使用 JDBI 将表名绑定(bind)到 SQL 查询

javascript - 我在 Node JS 中检索 Git 标签信息的方法很慢,如何加快速度?

node.js - 我应该如何连接本地 mongoose 数据库并将其移动到 mongodb 云图集?

javascript - 下采样和上采样后的音频关闭

javascript - 如何使用 jQuery 检查输入中的重复值

mysql - 如何为多个子查询赋予特定值?

mysql - ORDER BY 具有特定值的优先级

javascript - Node.js 中未处理的 promise 拒绝