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

Javascript 如何在Node.js中的一个json中追加两个查询结果,javascript,json,node.js,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", "

下面是我在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 }));
    });
});

首先,您应该找到一种方法来等待两个异步操作的
完成,然后concat结果。看看或者

您应该使用
concat
方法

以下是一个例子:

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

console.log(json1)
首先,您应该找到一种方法,等待两个异步操作完成,然后处理结果。看看或者

您应该使用
concat
方法

以下是一个例子:

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

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


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


返回响应时,如何为每个结果集指定标题?例如,我得到的数据如下:[{“id”:1,“country_name”:“Pakistan”}],{“id”:1,“currency”:“PKR”}]]到[country:[{“id”:1,“country_name”:“Pakistan”}],currency:[{“id”:1,“currency”:“PKR”}]]您不能指定头,但结果将是有序的。因此,您可以计算query1(第一个函数)的结果将在
results[0]中
和query2将出现在
结果[1]
中,依此类推,我们可以在第二个函数中使用result1中的一些数据吗?这是一个并行函数,两个函数将一起运行,因此不能使用一个函数中的数据。在另一种情况下,但您需要这样的操作,您可以使用
async.falter
(但这将以串联方式运行您的函数)如何在返回响应时为每个结果集指定标题?例如,我得到的数据如下:[{“id”:1,“country_name”:“Pakistan”}],{“id”:1,“currency”:“PKR”}]]到[country:[{“id”:1,“country_name”:“Pakistan”}],currency:[{“id”:1,“currency”:“PKR”}]]您不能指定头,但结果将是有序的。因此,您可以计算query1(第一个函数)的结果将在
results[0]中
和query2将出现在
结果[1]
中,依此类推,我们可以在第二个函数中使用result1中的一些数据吗?这是一个并行函数,两个函数将一起运行,因此不能使用一个函数中的数据。在另一种情况下,如果您希望进行这种操作,您可以使用
async.falter
(但这将以串联方式运行您的函数)感谢您的努力,但您提供的参考链接令人困惑和复杂。但是谢谢你。感谢你的努力,但是你提供的参考链接让人困惑和复杂。不过谢谢你。
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
            }
        })
});