手机版

小程序云开发初步研究(综述)

时间:2021-08-29 来源:互联网 编辑:宝哥软件园 浏览:

云开发是微信平台新开放的功能,为开发者提供集服务器、数据库、资源存储于一体的云服务。本文将以官方文件为基础,以一个小例子作为探索云开发的相关功能。

云开发正式文件

一、新云开发项目新项目

更新微信开发助手后,选择云开发模板。

项目目录

项目目录分为两部分:cloudfunctions和miniprogram。Miniprogram存储的业务代码和资源与普通开发相同,而cloudfunctions存储的是可以上传到云端的代码,在云开发中称为cloud function。云开发模板建立后,会有一些相关的例子来熟悉api。

第二,控制台

微信开发者工具更新后,工具栏上会有一个控制台入口,点击后会出现如下面板,以便查看相关数据。

概观

如上图所示,概览界面展示了云开发项目下使用云资源的统计数据。

用户管理

所有访问过云项目的用户都将在用户管理下保留访问记录。前提是小程序在app.js中设置traceUser:true,也就是允许记录用户信息。

Wx.cloud.init ({env: ' . ',traceuser: true,})数据库

数据库是控制台中最常用的功能之一。在这个界面下,可以快速建立数据集,可以理解为数据表。您可以在控制台中创建新的集合,添加记录有三种方法:在控制台中手动添加记录、导入文件和调用api。调用api会自动将user _openid插入到每个记录中。

内存管理

存储管理可以保存小程序上传的文件,并通过调用api上传。上传名称和路径需要自己定义。

云功能

Cloudfunctions管理在cloud functions中上传的函数,可以调试和查看调用日志等信息。

添加云功能有两种方式:可视化添加和IDE添加。可视化添加的云功能直接上传到云端,只有上传部署后才能调用IDE添加。如果要删除云功能,可以在删除控制台后同步IDE中的云功能列表。

统计分析

云服务调用的统计分析提供了有针对性的数据。

第三,环境配置

api自动将user _openid插入到每个记录中。

项目初始化需要在app.js中进行配置,env填充自配置的环境ID。

wx . cloud . init({ en v : ' Mina-cloud-test 001 ' })IV。实际应用

本例以上传图书信息为实际应用,实现了图书信息的添加、删除、检查以及图片的上传、删除等基本功能。

读取数据库数据

首先调用wx . cloud . database();获取数据库的所有集合,然后通过查询特定的集合来获取数据。

const db=wx . cloud . database();const _=db.commanddb.collection('bookList ')。get()。然后(res={ console.log('get ',RES)self . setdata({ booklist : RES . data });})添加数据

const db=wx . cloud . database();const _=db.commandDB.collection('书目')。添加({data: {bookmes:self。data.bookmes}})。然后(RES={ console . log(RES })删除数据

DB.collection('书目')。文档(id)。移除()。然后(RES={ console . log(RES)wx . show toast({ title : '已成功删除!})self . getbook();}).catch (err={console.log ('err ',RES)})来添加数据

const db=wx . cloud . database();const _=db.command数据库。收藏(' booklist ')。文档(id)。移除()。然后(res={console。日志(res)})。catch (err={console。日志(' err,res)}))

const db=wx . cloud . database();const _=db.command db . collection(' bookList ')。doc(self . data . current tid)。更新({ data : { book mes : self . data . book mes } })。然后(res={ console.log('update ',RES)self . getbook();}).catch(console.error)查询数据并调用云函数

以云函数为例进行数据查询

首先,在云函数中定义查询函数。每个需要调用云开发api的云函数都必须使用wx-server-sdk。创建新的云函数时,项目会提示是否使用依赖关系。如果是,将自动安装wx-server-sdk。函数中的事件参数表示applet传递的参数,只是默认情况下它包含userInfo,可用于用户身份验证。

//云函数入口文件const cloud=require(' wx-server-SDK ')cloud . init()const db=cloud . database()=const _ db.command//云函数入口exports.main=async (event,context)={ return db . collection(' bookList ')。其中({ 'bookMes.name': _。eq(event.bookMes.name),bookMes。ChooseTags' : _。在(事件)中。预订mes。ChooseTags)})。get({ success : function(RES){ return RES } })}小程序指的是云函数,名字就是云函数文件夹的名字。数据存储传递给云函数的参数,这些参数是通过事件获得的。

wx . cloud . call function({ name : ' search book ',//parameter data : { book mes : self . data . book mes } })。然后(RES={console.log ('search ',Res. result。数据)自我。setdata ({booklist:res。结果。data}))本文中的api用法只是一个例子。事实上,服务器端的api比小程序端的api更丰富,功能也更多。建议设计文件存储、数据库添加、删除、修改、查询都要在云功能中进行。

上传图片

要上传图片,需要先调用wx.chooseImage返回的filePath参数,然后独立定义cloudPath,也就是上传到云端的地址。

choose(){ let self=this wx . choose image({ count : 1,//默认9size type: ['original ',' compressed'],//可以指定是原始还是压缩。默认情况下,两者都有sourcetype: ['相册','相机']。//可以指定来源是相册还是相机。默认情况下,两者都有success:函数(RES){//console . log(RES . tempfile path[0])//返回所选照片的本地文件路径列表。TempFilePath可用作img标记的src属性来显示图片self . setdata({ bookpic : RES . tempfile path[0]})},upload(){ let self=this const file path=self . data . bookpiclet my date=new date();让time=' ' my date . getfull year()(my date . getmonth()1)my date . getdate()my date . gethours()my date . getminutes()my date . getseconds();const CloudPath=' book-image ' time FilePath . match(/\)。[^.] ?$/)[0];返回wx.cloud.uploadFile({ cloudPath,filePath,})。然后(res={ console.log('upload ',res)让bookMes=self . data . bookMes;book mes . book pic=RES . fileid;返回self . setdata({ BookMes });}).catch(err={ console . log(' err,err)})}删除图片

删除图片或其他文件需要特定的文件标识,可以通过查询获得,并通过该文件标识删除。

wx . cloud . delete file({ filelist :[file id],success 3360 RES={ console . log(' delete ',res.filelist)},fail 3360 err={ console . log(' delete,err)}) 5。找出存在的问题

在实际写例子的过程中,也发现了一些问题,因为云开发的功能还没有很快完善,总结了一些小问题:

数据库暂时不支持模糊查询。如果cloudPath与之前的图片一致,那么返回的结果实际上是成功的,但实际上是被之前的旧图片替换了。globalData的定义方法已更改,无法在与onLaunch相同的级别定义。不及物动词结论

关于云开发,官方文档给出了详细的说明,仔细阅读文档可以快速实现动手应用。但由于目前其职能的限制,公司业务复杂,不适合这种模式的发展,适合个人小企业采用。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:小程序云开发初步研究(综述)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。