【问题标题】:How to return key value pair array in res.json() in node.js?如何在 node.js 的 res.json() 中返回键值对数组?
【发布时间】:2020-03-22 21:41:59
【问题描述】:

我在我的代码中生成一个键值对数组,但是当我在 res.json() 中传递数组时,我在前端收到 null。

这是我要传递的键值数组。知道我做错了什么吗?

router.post('/xlsData',  session, async (req, res)=>{

    const reqStatus = req.body.searchType;
    const reportDate = req.body.reportDate;
    const userBebitReq = await debitReq.find({ reqStatus : reqStatus,  reqType: "Debit", reqDate : reportDate},{_id : 1, userId: 1,reqAmount : 1, withdrawalMode: 1, reqDate: 1, });
    let userIdArray = [];
    let debitArray = [];
    for(index in userBebitReq)
    {
        let reqAmount= userBebitReq[index].reqAmount;
        let withdrawalMode= userBebitReq[index].withdrawalMode;
        let reqDate= userBebitReq[index].reqDate;
        let user = userBebitReq[index].userId;
        let rowId = userBebitReq[index]._id;
        let userKi = mongoose.mongo.ObjectId(user);
        userIdArray.push(userKi);
        debitArray[userKi] = {
            rowId : rowId,
            userId : userKi,
            reqAmount: reqAmount,
            withdrawalMode: withdrawalMode,
            reqDate: reqDate
        }
    }

    let user_Profile = await userProfile.find({ userId: { $in: userIdArray } });

    for(index in user_Profile)
    {
        let id = user_Profile[index].userId;
        if(debitArray[id]){
            debitArray[id].address = user_Profile[index].address;
            debitArray[id].city = user_Profile[index].city;
            debitArray[id].pincode = user_Profile[index].pincode;
            debitArray[id].name = user_Profile[index].account_holder_name;
            debitArray[id].account_no = user_Profile[index].account_no;
            debitArray[id].bank_name = user_Profile[index].bank_name;
            debitArray[id].ifsc = user_Profile[index].ifsc_code;
            debitArray[id].paytm_number = user_Profile[index].paytm_number;
        }
    }

    res.json({
        status : 1,
        data : debitArray
    })  
})

在前端接收这个: data: Array(0)

【问题讨论】:

  • 你试过调试吗?因为这应该做的工作
  • 是的,我试过调试没有错误
  • 是res.json()这行是在上述所有操作完成后执行的吗?我认为可能是异步行为的问题
  • 得到了下面的答案,我想异步没问题谢谢你的回复。

标签: node.js mongodb ejs


【解决方案1】:

这样做:

let debitArray = {};

而不是这个。

let debitArray = [];

您基本上使用的是 object 而不是 array

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    相关资源
    最近更新 更多