数据库查询分页(小程序)

文章讲述了在微信小程序中如何使用异步函数处理数据库查询,如`wx.cloud.database()`,以及如何确保异步操作的正确执行顺序。作者给出了一个查询图片数据并动态显示的代码片段,展示了如何结合ES6语法处理查询结果。
摘要由CSDN通过智能技术生成

如果你需要接收异步函数得返回值。那么你必须保证这两个都是异步执行。这样才能够得到异步函数返回得结果。

异步函数得执行顺序:为排在前面得先执行,但是前面得有延时。比如setTimout(function,2000ms),则会先执行之后得函数。即。有空余时间就会去先执行其他得异步处理事情。

db.collection(that.data.parm.table).skip(that.data.parm.skip).limit(that.data.parm.limit)

.get()

.then(res => {

console.log(res)

if (res.data.length == 0 || res.data == null) {

wx.hideLoading({

success: (res) => { },

})

that.data.hasData = false

return;

}

else {

//将数据存入imgList中

that.setData({

//可以实现数组拼接,es6的语法

imgList: […that.data.imgList, …res.data]

})

console.log(“图片数据:”)

console.log(that.data.imgList)

wx.hideLoading({

success: (res) => { },

})

}

})

.catch(err => {

console.log(err)

})

},

废话不多说,下面上代码。

先给你们看下效果图:

在这里插入图片描述

在这里插入图片描述

1.wxml代码

下面时图片的展示

显示图片

2.wxss代码:

page {

height: 100%;

/* width: 100%; */

}

.top_container{

text-align: center;

color: rgb(71, 85, 209);

}

.title text{

/* 无法设置居中 */

text-align: center;

font-weight: bold;

}

.container {

display: flex;

flex-wrap: wrap;

flex-direction:row;

/* justify-content: center; */

align-items: left;

margin-top: 20px;

/* background-color: red; */

}

.img_content {

width: 48%;

border: 1px solid pink;

margin-left: 3px;

}

.img_content image {

width: 100%;

height: 250px;

}

button {

height: 50px;

margin-top: 10px;

display: block;

}

3.js代码

//index.js

const app = getApp()

const db = wx.cloud.database()

const _ = db.command

Page({

data: {

userInfo: {},

imgList: [],

parm: {

skip: 0,

table: ‘Image’,

limit: 5,

},

//放置恶意点击 图片显示按钮

count: 0,

hasData: true

},

showImage(event) {

var that = this

if (!that.data.hasData) {

wx.showToast({

title: ‘请勿重复点击’,

icon: ‘none’,

duration: 1500

})

} else {

if (that.data.count >= 1) {

return;

} else {

//用于查询库

this.queryImage()

that.data.count++

}

}

},

// 查询图片数据

queryImage() {

wx.showLoading({

title: ‘加载中’

})

var that = this

db.collection(that.data.parm.table).skip(that.data.parm.skip).limit(that.data.parm.limit)

.get()

.then(res => {

console.log(res)

if (res.data.length == 0 || res.data == null) {

wx.hideLoading({

success: (res) => { },

})

that.data.hasData = false

return;

}

else {

//将数据存入imgList中

that.setData({

//可以实现数组拼接,es6的语法

imgList: […that.data.imgList, …res.data]

})

console.log(“图片数据:”)

console.log(that.data.imgList)

wx.hideLoading({
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后,附一张自己面试前准备的脑图:

image

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

image

  • Spring全家桶(实战系列)

image.png

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

image

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

[外链图片转存中…(img-N7xVI51d-1713711193547)]

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 30
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在小程序JavaScript 代码中实现云数据库的数据分页查询,可以使用云函数进行数据库查询,并通过参数控制分页。 以下是一个示例代码,演示如何在小程序中使用云函数实现云数据库的数据分页查询: 1. 创建一个云函数,在其中进行数据库查询并返回分页数据。 ```javascript // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { const db = cloud.database() const collection = db.collection('collectionName') // 替换为实际的集合名称 const { page, pageSize } = event const skip = (page - 1) * pageSize // 查询数据并返回结果 const result = await collection.skip(skip).limit(pageSize).get() return result.data } ``` 2. 在小程序端调用云函数,并处理返回的分页数据。 ```javascript Page({ data: { page: 1, // 当前页数 pageSize: 10, // 每页显示的数据量 dataList: [], // 分页数据列表 }, // 加载更多数据 loadMoreData: function() { wx.cloud.callFunction({ name: 'getPagedData', // 替换为实际的云函数名称 data: { page: this.data.page + 1, // 请求下一页的数据 pageSize: this.data.pageSize, // 每页显示的数据量 }, success: (res) => { // 将获取到的数据添加到原有数据列表中 const newDataList = this.data.dataList.concat(res.result); this.setData({ dataList: newDataList, page: this.data.page + 1, }); }, }); }, }); ``` 这样,当用户触发加载更多数据的事件时,会调用云函数并获取下一页的数据,并将新数据添加到原有数据列表中实现分页显示效果。需要根据实际情况修改集合名称和云函数名称。同时,在小程序的云开发控制台中,需要创建一个名为 `getPagedData` 的云函数,并在其中引入数据库操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值