写在前面
本篇文章是微信小程序开发入门的第八篇,介绍小程序云开发操作数据库:查询记录
数据库:查询记录
查询记录云函数的编写和添加记录类似,打开cloudfunctions\fruit\index.js文件,修改代码为如下:
const add = require('./add/index');
const search = require('./search/index');
// 云函数入口函数
exports.main = async (event, context) => {
switch (event.type) {
case 'add':
return await add.main(event, context);
case 'search':
return await search.main(event, context);
}
}
在“fruit”文件夹下新建“search”文件夹,同时在“search”文件夹下新建index.js文件,在index.js中编写代码如下,保存后需上传并部署,同时重启项目后才能在小程序端被访问到,也可以选择开启本地调试:
const cloud = require('wx-server-sdk');
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
});
const db = cloud.database();
// 创建集合云函数入口函数
exports.main = async (event, context) => {
try {
// 小程序端传入的参数:
// limit每页条数(默认100条),page页数(默认第1页)
const limit = event.limit ? event.limit : 100
const page = event.page ? event.page : 1
// 取出集合记录总数
const countResult = await db.collection('fruit').count()
const total = countResult.total
// 取出集合的记录
const data = await db.collection('fruit').skip((page - 1) * limit).limit(limit).get()
return {
success: true,
data: data,
total: total,
msg: '查询成功!'
}
} catch (e) {
return {
success: false,
msg: '查询失败!'
};
}
};
以上代码需要我们在小程序端调用的时候传入参数:limit(表示每页的条数,不传默认100条)、page(当前页面,不传默认第1页),最后云函数会返回查出的数据data和总数据数total。
我们打开miniprogram\pages\index\index.js文件,替换代码为如下:
// index.js
// const app = getApp()
Page({
data: {
fruitList: []
},
onLoad() {
wx.cloud.callFunction({
// 云函数名称
name: 'fruit',
// 传给云函数的参数
data: {
type: 'search',
limit: 20,
page: 1
},
})
.then(res => {
console.log('res', res)
this.setData({
fruitList: res.result.data.data
})
})
.catch(err => {
console.log('err', err)
})
},
});
同时打开miniprogram\pages\index\index.wxml文件,替换代码为如下:
<view class="fruit_ul">
<view class="furit_li" wx:for="{{fruitList}}" wx:key="index">
<view class="name">
{{item.name}}
</view>
</view>
</view>
在上面的代码中,我们使用wx.cloud.callFunction()方法调用云函数“fruit”,并且向其传参
data: { type: 'search', limit: 20, page: 1 },表示查询前20条数据,同时将查询到的数据赋值给fruitList,并且将fruitList的信息展示在页面上
查询到的数据如下:
最后页面展示如下:
写在最后
以上就是小程序云开发操作数据库查询记录的全部内容