gpt4 book ai didi

node.js - 如何在 NodeJS/ExpressJS 中连接两个数组

转载 作者:行者123 更新时间:2023-12-01 22:24:29 24 4
gpt4 key购买 nike

在 NodeJS/Express 应用程序中合并两个相同的 JSON 数组的最便捷方法是什么?我有三个 Web 服务...两个数据 API 服务和一个“包装”服务。两种数据服务具有相同的对象和模式(通过 Mongoose 从 Mongo 拉取)。我希望“包装器”服务能够调用两个数据服务并将结果作为一个组合响应发回。

这两个对象是相同的:

{
"items": [
{
"_id": "14e016a2-9eb8-4f83-b597-bda8ad747adb",
"name": "Item A 01",
"__v": 0
},
{
"_id": "4040c450-4624-4341-9a80-211814d630ab",
"name": "Item A 02 - Renamed",
"__v": 0
},
{
"_id": "4fc4e0f7-36bc-4a87-a280-97e4f84a4a43",
"name": "Item A 04 - Renamed",
"__v": 0
}
]
}

我正在尝试合并两个结果集:

    request('http://localhost:8080/itemsa', function(err, response, body){
if (err || response.statusCode != 200){ res.status(500).send({ message: 'Failure service 01' }); return; }

var objA = JSON.parse(body);

request('http://localhost:8081/itemsb', function(err, response, body) {
if (err || response.statusCode != 200) {
res.status(500).send({message: 'Failure service 02'});
return;
}

var objB = JSON.parse(body);

var objC = {
items: []
};

objC.items.concat(objA.items);
objC.items.concat(objB.items);

res.send(objC);
});
});

但是,我找不到有效的连接或合并操作:

{
"items" : [ ]
}

最佳答案

啊啊,错误地使用了 concat 函数...

    request('http://localhost:8080/itemsa', function(err, response, body){
if (err || response.statusCode != 200){ res.status(500).send({ message: 'Failure service 01' }); return; }

var objA = JSON.parse(body);

request('http://localhost:8081/itemsb', function(err, response, body) {
if (err || response.statusCode != 200) {
res.status(500).send({message: 'Failure service 02'});
return;
}

var objB = JSON.parse(body);

var objC = {
items: []
};

//objC.items.concat(objA.items);
//objC.items.concat(objB.items);

objC.items = objA.items.concat(objB.items);

res.send(objC);
});
});

concat 方法生成一个输出对象...

{
"items": [
{
"_id": "14e016a2-9eb8-4f83-b597-bda8ad747adb",
"name": "Item A 01",
"__v": 0
},
{
"_id": "4040c450-4624-4341-9a80-211814d630ab",
"name": "Item A 02 - Renamed",
"__v": 0
},
{
"_id": "4fc4e0f7-36bc-4a87-a280-97e4f84a4a43",
"name": "Item A 04 - Renamed",
"__v": 0
},
{
"_id": "1997b22b-541c-4338-950f-a97566f0cfc6",
"name": "Item B 01",
"__v": 0
},
{
"_id": "ef2eb8e8-6eaf-426b-a69a-0dd04c0b473f",
"name": "Item B 02",
"__v": 0
}
]
}

关于node.js - 如何在 NodeJS/ExpressJS 中连接两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27744749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com