一、问题描述
比如说,在前端页面需要录入三种水果的数量和价格,形成一个数组,存放在data对象中。那么,如何把这个数组,通过云函数,一次性写入到数据库中?
data对象内容如下:
data: { dtlist: [{ //三种水果,对象数组,title对应数据库中字段 name: '香蕉', number: 121, price: 2, date: '2021-01-09', }, { name: '西瓜', number: 212, price: 1, date: '2021-01-09', }, { name: '橘子', number: 321, price: 2, date: '2021-01-09', }] },
二、云函数端写法
在could的functions中创建名为addtst的云函数文件。并在该文件中定义写入数据库方法,部分代码如下:
// 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() const db = cloud.database() return await db.collection('tst').add({ //tst-云数据库名 data: event.dtlist //对象数组 }) }
修改完成后,一定要记得点击上传,才能让修改后的文件生效。
三、前端调用云函数
在微信前端页面中,需要用到云函数的地方,通过wx.cloud.callFunction()来实现对addtst云函数的调用,通过其中name属性指定要调用的云函数名。具体调用云函数写法如下:
writeDataTODbase() {//把数据写入到数据库中 wx.cloud.callFunction({ name: 'addtst',//云函数名 data: { dtlist: this.data.dtlist //对象数组 } }).then(res => { console.log('数组写入成功:', res) }).catch(res => { console.log('数组写入失败:', res) }) }
四、返回结果如下:
通过以上操作可以看到最终能成功返回结果。如图所示。