如何在Node.js中的一个json中附加两个查询结果

时间:2017-05-27 10:07:21

标签: javascript json node.js

以下是我在node.js中的代码我想知道如何在一个json中附加两个查询结果并在响应中发送json。

        router.get("/get-meta", function(req, res, next){

    connection.query("select id, country_name from country", function (error, results) {

        if (error) res.json({"status": "failed", "message": error.message});
        else res.send(JSON.stringify({ results }));
    });
    connection.query("select id, currency from currency", function (error, results2) {

        if (error) res.json({"status": "failed", "message": error.message});
        else res.send(JSON.stringify({ results2 }));
    });
});

2 个答案:

答案 0 :(得分:3)

使用async.parallel发送并行请求.async.parallel的结果将是一个结果数组(这将解决您的问题)

var async = require('async')

router.get("/get-meta", function(req, res, next){

    async.parallel([
        function(callback){
            connection.query("select id, country_name from country", function (error, result1) {
                callback(error,result1)
            });
        },
        function(callback){
            connection.query("select id, currency from currency", function (error, result2) {
                callback(error,result2)
            });
        }

        ],function(err,results){
            if(err){
                res.json({"status": "failed", "message": error.message})
            }else{
                res.send(JSON.stringify(results)); //both result1 and result2 will be in results
            }
        })
});

答案 1 :(得分:1)

首先,你应该找到一个方法await完成两个异步操作,然后 concat 结果。看看herehere

您应该使用concat方法。

以下是一个例子:

var json1 = [{'name': "doug", 'id':5}];
var json2 = [{'name': "goud", 'id':1}];
json1 = json1.concat(json2);
console.log(json1);