Я пытаюсь реализовать API, используя NodeJs, который считывает данные из коллекции базы данных и снова формирует, что данные считывают соответствующие данные из другой коллекции и обновляют тот же объект с новыми парами значений ключа.
Объекты обновляются успешно, но ответ API, который я получаю на Frontend, не обновляется значениями второй коллекции.
router.get('/exam/:_id' , (req , res) => {
ExamModel.find({
userId: req.params._id
})
.then(doc => {
let i=0;
for(let data of doc){
i=i+1;
ResponseModel.find({examId: data._id}).countDocuments()
.then(count=>{
data.responseCount= count;
if(i===doc.length){
res.json(doc)
}
})
.catch(err => {
res.status(500).json(err)
})
}
})
.catch(err => {
res.status(500).json(err)
})
})
Объект, полученный из ExamModel, равен
[
{
_id: "012",
responseCount: 0,
data: [array]
},
{
_id: "015",
responseCount: 0,
data: [array]
}
]
после ResponseModel объект становится
[
{
_id: "012",
responseCount: 5,
data: [array]
},
{
_id: "015",
responseCount: 2,
data: [array]
}
]
Но в ответ на api я получаю первый объект, а не второй.
И еще я получаю сообщение об ошибке
(node:15012) UnhandledPromiseRejectionWarning: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:470:11)