Javascript 如何将所有对象移动到一个数组中,并在node js中使用res.json发送

Javascript 如何将所有对象移动到一个数组中,并在node js中使用res.json发送,javascript,node.js,json,Javascript,Node.js,Json,嘿,伙计们,我正试图通过一个数组循环,使用节点js和mongodb从另一个信息表获取特定用户的所有用户数据,因此该数组的每个元素都可以从另一个表返回数据。到目前为止,如果我运行我的代码和console.log,它将返回所有用户数据,但如果我使用res.json,它只返回1个数据,请问我如何使用res.json返回所有数据?我可以将所有对象移动到仅1个数组中吗?如果是,请问我如何解决它 我的代码 //get students that offer the course and send link

嘿,伙计们,我正试图通过一个数组循环,使用节点js和mongodb从另一个信息表获取特定用户的所有用户数据,因此该数组的每个元素都可以从另一个表返回数据。到目前为止,如果我运行我的代码和console.log,它将返回所有用户数据,但如果我使用res.json,它只返回1个数据,请问我如何使用res.json返回所有数据?我可以将所有对象移动到仅1个数组中吗?如果是,请问我如何解决它

我的代码

//get students that offer the course and send link to them
router.get('/send/Link/:id',GetAllUserdata,async(req,res)=>{
    const {dept,college,level} = req.body
    const responseArray = [];
 
        for (let index = 0; index < res.GetUserDT.coursesHandled.length; index++) {
           responseArray.push( res.GetUserDT.coursesHandled[index].courseCode); 
        }
        responseArray.map(async(course,i)=>{
          const getActiveClass = await Class.findOne({'school.college':college,'school.department':dept,'school.level':level,'school.course':course,'type':'uploadclass',"expires":0})
        if(getActiveClass){
        console.log({url:getActiveClass.address,course:getActiveClass.school.course})
        }else{
            res.status(404).json('nothing')
        }
           
        })
})
我的res.json答案

{ url: 'eyaF8Pq6SP8e7YMe48aY', course: 'csc2101' }
{ url: 'c6d8KGfo6WO67QRC0Dq8', course: 'csc2104' }
{ url: 'eyaF8Pq6SP8e7YMe48aY', course: 'csc2101' }

我建议您将结果保存到数组中,并在最后返回数组。尝试使用try-catch块捕获异步调用错误

const{dept,college,level}=req.body
const responseArray=[];
让结果=[];
for(让index=0;index{
const getActiveClass=wait Class.findOne({'school.college':college,'school.department':dept,'school.level':level,'school.course':课程,'type':'uploadclass','expires:'0})
if(getActiveClass){
结果.推送({url:getActiveClass.address,课程:getActiveClass.school.course})
}
})
返回res.json(结果);
}
捕获(错误){
res.status(404.json)('nothing')
}

几个小时前一个非常类似的问题的答案:。从中,你可以看到如何解决这个问题。您的
.map()
生成一系列承诺。您需要在该数组上使用
Promise.all()
,以了解这些承诺何时完成
.map()
本身不支持承诺。