我希望在云函数中,对数据库进行请求调用,在拿到数据库回传的数据后,再对数据进行加工然后返还给用户。但是现在遇到了问题。
exports.main = async (event, context) => {
let count=3;
let time=new Date().toLocaleDateString();
let Lawyer=await DB.collection("Lawyer").limit(count).where({
verify:true
}).get()
let data=Lawyer.data;
for(var i=0;i<data.length;i++)
{
data[i]={
openId:data[i].openId,
location:data[i].locate[0]+data[0].locate[1],
name:data[i].name,
year : Number(time.slice(6,time.length))-Number(data[i].certification_date.slice(0,4)),
company:data[i].company,
img:data[i].img,
mode:data[i].mode,
price:data[i].price,
tags:data[i].tags,
}
}
return {
data
}
}
报错点是在循环中,但是不知道怎么去更改。如果不用循环将循环变量i直接改为0则不会报错。但是实际处理中会是一整个数组需要进行数据处理,所以不知道该如何进行修改
第一次循环后,data[0]就没有locate属性了,被你改成了location,但是你还是使用了data[0].locate
如果不加循环可以正常使用过data[0],但是如果加上外部循环就会提示出现错误
Cannot read property '0' of undefined
// for(let i=0;i<count;i++) // { data[0] = { openId: Lawyer.data[0].openId, location: Lawyer.data[0].locate[0] + Lawyer.data[0].locate[1], name: Lawyer.data[0].name, year: Number(time.slice(6, time.length)) - Number(Lawyer.data[0].certification_date.slice(0, 4)), company: Lawyer.data[0].company, img: Lawyer.data[0].img, mode: Lawyer.data[0].mode, price: Lawyer.data[0].price, tags: Lawyer.data[0].tags, } // }