小程序入门8:小程序云开发之操作数据库:查询记录

524 阅读2分钟

写在前面

本篇文章是微信小程序开发入门的第八篇,介绍小程序云开发操作数据库:查询记录

数据库:查询记录

查询记录云函数的编写和添加记录类似,打开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的信息展示在页面上

查询到的数据如下: image.png

最后页面展示如下:

image.png

写在最后

以上就是小程序云开发操作数据库查询记录的全部内容