1.小程序功能古诗词大全成语大全成语接龙诗词飞花令诗词分享、收藏诗词接龙唐诗宋词起名字百家姓猜谜语2.小程序地址1.https://github.com/caochangkui/miniprogram-project
3.小程序预览:4.部分截图首页列表页详情页分享页唐诗宋词成语接龙5.项目结构.├──README.md├──project.config.json//项目配置文件├──cloudfunctions|云环境//存放云函数的目录│├──login//用户登录云函数││├──index.js││└──package.json│└──collection_get//数据库查询云函数││├──index.js││└──package.json│└──collection_update//数据库更新云函数│├──index.js│└──package.json└──miniprogram├──images//存放小程序图片├──lib//配置文件├──pages//小程序各种页面|├──index//首页|└──menu//分类页|└──user//用户中心|└──search//搜索页|└──list//列表页搜索结果页|└──detail//详情页|└──collection//收藏页|└──find//发现页|└──idiom-jielong//成语接龙页|└──poet//作者页|└──baijiaxing//百家姓|└──xiehouyu//歇后语|└──poet//作者页|└──suggest//建议反馈|└──...//其他├──style//样式文件目录├──app.js//小程序入口文件├──app.json//全局配置└──app.wxss//全局样式6.封装云函数操作数据库2.本项目是使用的小程序云开发。云开发提供了一个JSON数据库,用户可以直接在云端进行数据库增删改查,但是,小程序对用户操作数据的权限进行了一定的限制(例如数据update、一次性get记录的条数限制等),所以,这里主要采用云函数来操作数据库。
查询数据、分页查询3.函数根目录上右键,在右键菜单中,选择创建一个新的Node.js云函数,我们将该云函数命名为collection_get。
4.编辑index.js:
//云函数入口文件constcloudrequire('wx-server-sdk')cloud.init()constdbcloud.database()exports.mainasync(event,context){/***page:第几页*num:每页几条数据*condition:查询条件,例如{name:'李白'}*/const{database,page,num,condition}eventconsole.log(event)try{returnawaitdb.collection(database).where(condition).skip(num*(page-1)).limit(num).get()}catch(err){console.log(err)}}使用collection_get云函数5.例如,按照查询条件{tags:'唐诗三百首'}查询诗词列表,每页num10条数据:
let{list,page,num}this.dataletthatthisthis.setData({loading:true})wx.cloud.callFunction({name:'collection_get',data:{database:'gushici',page,num,condition:{tags:'唐诗三百首'}},}).then(res{if(!res.result.data.length){//没搜索到that.setData({loading:false,isOver:true})}else{letres_datares.result.datalist.push(...res_data)that.setData({list,page:page+1,//页面加1loading:false})}}).catch(console.error)}更新数据6.注意,当我们向数据库中添加记录时,系统会自动帮我们为每条记录添加上用户的openid字段,但如果,数据表是自己用json/csv文件导入的,就不存在openid字段,此时,当更新这个数据表时,系统会认为你不是创建者,所以也就无法更新。
7.此时,就需要通过云函数更新数据库,新建云函数collection_update,编辑index.js:
//更新数据-根据_id更新已打开人数constcloudrequire('wx-server-sdk')cloud.init()constdbcloud.database()const_db.commandexports.mainasync(event,context){const{id}eventconsole.log(event)try{returnawaitdb.collection('gushici').doc(id).update({data:{opened:_.inc(1)},})}catch(e){console.error(e)}}使用collection_update云函数8.更新某_id数据的打开人数:
let_ide.currentTarget.dataset.idwx.cloud.callFunction({name:'collection_update',data:{id:_id},}).then(res{console.log(res.data)}).catch(console.error)7.数据库模糊查询9.小程序云开发可以使用正则表达式进行模糊查询。例如,根据用户输入关键词,查询标题中存在改关键词的古诗词。
letdatabase'gushici'letcondition{name:{$regex:'.*'+inputValue,$options:'i'}}let{list,page,num}this.dataletthatthisthis.setData({loading:true})//模糊查询wx.cloud.callFunction({name:'collection_get',data:{database,page,num,condition},}).then(res{if(!res.result.data.length){//没搜索到that.setData({loading:false,isOver:true})}else{letres_datares.result.datalist.push(...res_data)that.setData({list,loading:false})}}).catch(console.error)8.使用async/await处理异步10.参考文章:微信小程序中使用Async/await方法处理异步请求
9.分享或转发功能11.小程序中页面触发转发的方式有两种:
1.在小程序的右上角选择转发,需要定义函数Page.onShareAppMessage,如果当前页面没有定义此事件,则点击后无效果。2.通过给button组件设置属性open-type"share",可以在用户点击按钮后触发Page.onShareAppMessage事件,如果当前页面没有定义此事件,则点击后无效果。12.用户还可以在Page.onShareAppMessage事件中自定义转发后显示的标题、图片、路径:
onShareAppMessage(res){letidwx.getStorageSync('shareId')if(res.from'button'){//来自页面内转发按钮console.log(res.target)}return{title:`跟我一起挑战最长的成语接龙吧!`,path:`pages/find/find`,imageUrl:'/images/img.jpg',}},注意:转发成功/失败的callback已经被官方废弃,所以理论上小程序是无法得知用户是否将页面分享成功的10.用户授权13.详情请参考文章:微信小程序之授权
11.需要注意的几个坑查询不到数据14.数据表中明明有数据,但是collection.get到的却为空。解决:可以在云开发控制台中打开数据库权限设置,设置权限。
更新数据失败15.collection.update函数调用成功单返回的却是0行记录被更新,因为小程序端不允许更新没有openid字段的数据。解决:可以通过云函数更新数据库。
background图片url不能为本地图片16.解决:1:将图片上传到服务器,填写服务器上的图片路径地址。2:将图片转为base64编码。
往云数据库中批量导入json数据失败17.原因:请看文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/import.html
18.解决:去掉json数据{}之间的逗号,如果最外层为[],也必须去掉,最终形如:
{"index":"作者_1","type":"作者","poet":"李白","abstract":"李白(701年-762年),字太白,号青莲居士,唐朝浪漫主义诗人,被后人誉为“诗仙”..."}{"index":"作者_2","type":"作者","poet":"白居易","abstract":"白居易(772年-846年),字乐天,号香山居士..."}
微信小程序云开发项目实战进阶-诗词大全&成语接龙-微信云计划-腾讯云微信小程序
浏览量:2748
时间:
来源:weixin_34186950
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










