【发布时间】: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()这行是在上述所有操作完成后执行的吗?我认为可能是异步行为的问题
-
得到了下面的答案,我想异步没问题谢谢你的回复。