微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在节点js中将所有对象移动到数组中并使用res.json发送

如何解决如何在节点js中将所有对象移动到数组中并使用res.json发送

伙计们正在尝试遍历一个数组,以从另一个信息表中使用节点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')
        }
           
        })
})

我的控制台答案

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

我的res.json答案

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

解决方法

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

 const {dept,college,level} = req.body
    const responseArray = [];
let result=[];
 
        for (let index = 0; index < res.GetUserDT.coursesHandled.length; index++) {
           responseArray.push( res.GetUserDT.coursesHandled[index].courseCode); 
        }
try{
        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){
        result.push({url:getActiveClass.address,course:getActiveClass.school.course})
        }
        })
return res.json(result);
}
catch(error){
            res.status(404).json('nothing')

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。